一、访问数组
1、访问数组
1.1 索引值访问,默认索引从0开始
a = np.array([1, 2, 3, 4, 5, 6])
print(a[3]) # 4
print(a[-1], a[-2]) # 6 5
1.2 索引值列表访问,返回新数组
print(a[[1, 4]]) # [2 5]
1.3 根据值的范围访问
print(a[a > 3]) # [4 5 6]
1.4 切片访问,获取子数组。切片格式:[起始索引,终止索引,步长]。默认左闭右开,步长为1
print(a[2:]) # [3 4 5 6]
print(a[:-2]) # [1 2 3 4]
print(a[1:3]) # [2 3]
print(a[::3]) # [1 4]
print(a[::-1]) # [6 5 4 3 2 1] 倒序
2、常用的数组属性
a = np.array([[1, 2, 3], [4, 5, 6], [2, 4, 6]])
print(a.shape) # 数组维度 (3, 3)
print(a.dtype) # 数组元素类型 int32
print(a.ndim) # 数组的秩 2
print(a.size) # 数组包含的元素个数 9
print(a.nbytes) # 数组所占空间大小 36
二、修改数组
1、添加数组元素
a = np.array([1, 2, 3, 4, 5])
a = np.append(a, 8) # 末尾追加,返回数组
print(a) # [1 2 3 4 5 8]
a = np.insert(a, 0, 10) # 插入
print(a) # [10 1 2 3 4 5 8]
2、根据索引、索引值列表删除数组元素
切片左闭右开,列表是实在的
a = np.delete(a, 3)
print(a) # [10 1 2 4 5 8]
a = np.delete(a, [1, 2])
print(a) # [10 4 5 8]
3、修改数组
a[0] = 11 # 索引修改
print(a) # [11 4 5 8]
a[1:3] = [66, 88]
print(a) # [11 66 88 8]
4、修改形状(维度等)
a = np.array([[1, 2, 3], [4, 5, 6]])
print('原数组为:\n', a)
a = a.reshape(3, 2) # 前是维度(行),后是元素个数(列)
print('形状改变的数组1为\n', a)
a = a.reshape(2, -1) # 后参数为-1,自动根据维度生成
print('形状改变的数组2为\n', a)
a = a.reshape(-1)
print('形状改变的数组3为\n', a) # [1 2 3 4 5 6]
输出结果如下:
5、修改类型
print(np.typeDict.items()) # 查看支持的类型
# 指定类型,并创建数组
a = np.array([1, 2, 3], dtype=np.int64)
print(a.dtype) # int64
# 转换元素类型
a = a.astype(np.float32)
print(a.dtype) # float32
print(a) # [1. 2. 3.]
a = a.astype(np.str_)
print(a) # ['1.0' '2.0' '3.0']
新手,若有错误,请指正,谢谢!