numpy的基本操作

作者 : admin 本文共2450个字,预计阅读时间需要7分钟 发布时间: 2024-06-16 共1人阅读

1.常用方法创建array

print(np.array([1, 2, 3], dtype=”f4″))# 32位浮点型

print(np.array([1.5, 2.2, 3]))# 默认浮点型

print(np.array([1, 2, 3, 4, 5], ndmin=3))# 3维数组

print(np.array([range(i, i + 5) for i in [1, 2, 3]]))#

print(np.zeros(shape=[5, 5], dtype=”i4″))# 5×5的0数组

print(np.ones(shape=[5, 5], dtype=”i4″))# 5×5的1数组

print(np.array([“1.1”, “2.2”, “3.3”], dtype=”S”).astype(“f4”))# 字符串数组转为浮点型数组

# 所有非零元素的索引
a=np.nonzero(np.array([1, 0, 2, 3, 0, 4]))#
print(a)#(array([0, 2, 3, 5], dtype=int64),)
print(a[0])# [0 2 3 5]

numpy的基本操作插图

print(np.full(shape=[5, 5], fill_value=1.5, dtype=np.float_))# 5×5的1.5数组

numpy的基本操作插图(1)

print(np.eye(10))# 10×10的单位阵

numpy的基本操作插图(2)
# 数组元素为随机值,因为它们未初始化

print(np.empty(shape=(5, 5)))# 5×5的未初始化数组

numpy的基本操作插图(3)

print(np.linspace(1, 10, 5))# 返回num个等间距的样本

 

 

numpy的基本操作插图(4)
 

print(np.random.random((5, 5)))# 随机生成5行5列

numpy的基本操作插图(5)

# 生成[0, 10) 且 3行3列的随机数
# 生成的数据包括起始值和结束值,但不包括结束值本身。
print(np.random.randint(0, 10, (3, 3)))# 3×3的随机整数数组, 值在[0, 10)

numpy的基本操作插图(6)

print(np.random.normal(0, 1, (3, 3)))# 3×3的正态分布随机数, 均值为0, 方差为1

numpy的基本操作插图(7)

print(np.array([1, 2, 3]).itemsize)# 元素字节大小, 32位=4字节

numpy的基本操作插图(8)

2. Numpy 索引和切片 

在Python中,切片(slice)是对序列型对象(如list, string, tuple)的一种高级索引方法。
普通索引只取出序列中一个下标对应的元素,而切片取出序列中一个范围对应的元素

2.1普通索引

一维的索引
a1 = np.array([1, 2, 3, 4])
print(a1)
print(a1[0])
print(a1[2])

numpy的基本操作插图(9)

二维的索引
a2 = np.array([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
])
print(a2[2])
print(a2[2, 1])
print(a2[:, 2])# 第2列元素,行索引省略表示所有行

numpy的基本操作插图(10)

a3 = np.array([
    [[10, 11, 12], [13, 14, 15], [16, 17, 18]],
    [[20, 21, 22], [23, 24, 25], [26, 27, 28]],
    [[30, 31, 32], [33, 34, 35], [36, 37, 38]]
])

# 打印数组 a3 的形状
print(a3.shape)  

numpy的基本操作插图(11)

# 打印 a3 的第三层(索引为 2)
print(a3[2])  

numpy的基本操作插图(12)

# 打印 a3 第三层的第一层(索引为 2,0)
print(a3[2, 0])  

numpy的基本操作插图(13)

# 打印 a3 第三层第一层的第二个元素(索引为 2,0,1)
print(a3[2, 0, 1])  

numpy的基本操作插图(14)

# 打印 a3 所有层的第二层的第三个元素(索引为 :,1,2)
print(a3[:, 1, 2])  

numpy的基本操作插图(15)

# 打印 a3 第二层的第三层(索引为 1,2)
print(a3[1, 2])  

numpy的基本操作插图(16)

# 打印 a3 第一层的所有元素(索引为 0,:)
print(a3[0, :])  

numpy的基本操作插图(17)

# 打印 a3 第一层的所有第二层元素(索引为 0,:,1)
print(a3[0, :, 1])  

numpy的基本操作插图(18)

# 打印 a3 所有层的第二层(索引为 :,1)
print(a3[:, 1])  

numpy的基本操作插图(19)

# 打印 a3 所有层的第二层的第一个元素(索引为 :,1,0)
print(a3[:, 1, 0])  

numpy的基本操作插图(20)

# 打印 a3 所有层的第二层和第三层的第一个元素(索引为 :,1:3,0)
print(a3[:, 1:3, 0])  

numpy的基本操作插图(21)

# 打印 a3 所有层的前两层的前两层(索引为 :,:2,:2)
print(a3[:, :2, :2])  

numpy的基本操作插图(22)

# 打印 a3 第二层的第二层和第三层的第二个元素(索引为 1:2,1:3,1)
print(a3[1:2, 1:3, 1])  

numpy的基本操作插图(23)

print(a3[:, 0, 1])  # 打印所有层的第一层的第二个元素

numpy的基本操作插图(24)

print(a3[:, ::2, 1])  # 打印所有层的隔一个元素的层的第二层元素

numpy的基本操作插图(25)

print(a3[:, [0, 2], [0, 1]])  # 以特定索引组合打印元素

numpy的基本操作插图(26)

numpy的基本操作插图(27)

2.2索引可以是array数组

data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
mask1 = np.array([True, False, True, False, True, False, True, False, True],dtype=np.bool_)
index = np.array([1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=”i1″)
print(data[mask1])# 索引为True的元素

numpy的基本操作插图(28)

# index表示索引 将data对应的索引选择出来
print(data[index])# 索引为1,0,1,0的元素

numpy的基本操作插图(29)

data = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9])
index = np.array([2, 4, 1, 0], dtype=”i1″)
print(data[index])# 索引为2,4,1,0的元素

numpy的基本操作插图(30)

2.3高级索引
 

arr = np.array([
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]])
# 使用整数数组索引选择元素
indices = np.array([0, 2])
result = arr[:, indices]# 选择第0列和第2列,即第0行和第2行
#result = arr[:, [0, 2]]#与上一行等价
print(result)

numpy的基本操作插图(31)

本站无任何商业行为
个人在线分享 » numpy的基本操作
E-->