1. numpy 常常被缩写成 np
import numpy as np
2. 自定义数组
ls = [[1,2],[3,4],[5,6]]
array = np.array(ls)
# 定义形状,填充值一致
array_0 = np.zeros([3,3]) # 形状为3*3的全零矩阵
array_1 = np.ones([3,3]) # 形状为3*3的全1矩阵
array_6 = np.full([3,3],6) # 形状为3*3的全为6的矩阵
# 等差序列
array = np.arange(10,20,2) # 根据步长来取数据:[10, 12, 14, 16, 18]
array = np.linspace(10,20,6) # 等距离取6个数据:[10., 12., 14., 16., 18., 20.]
# 设置技巧,20-10 = 10 可以被5整除,则要设置 5+1 = 6 个数据
# 斜对角
np.eye(3) # 生成斜对角都为1的3*3矩阵
np.diag([1,2,3]) # 生成斜对角为1,2,3的3*3矩阵
# 范德蒙数组
np.vander([3,4,5,6])
3. 查看array的属性
ls = [[1,2],[3,4],[5,6]]
array = np.array(ls)
array.shape # (3,2)
array.size # 6
array.T # 转置 操作
array.real # 提取实部
array.imag # 提取虚部
4. 复制和变形
ls = [[1,2],[3,4],[5,6]]
array = np.array(ls)
array_copy = array.copy() # 由于数组操作都会改变原数组,保护原数组要先将数组复制
# reshape变换形状
array_re = array.reshape(2,-1) # 原数组不变。新数组是将原数组变成2行,-1代表着:具体变成几列,计算机自己计算。
array.resize(2,3) # 将原数组进行变形,不能使用-1的技巧
array.flatten() # 拉伸成一维数组(扁平化)
5. 索引方法-切片和键对索引
array = np.vander([3,4,5,6])
输出: [[ 27, 9, 3, 1],
[ 64, 16, 4, 1],
[125, 25, 5, 1],
[216, 36, 6, 1]]
# 切片
array[1:3,1:3] # 第一,二行和第一,二列
# 键对索引
# 单键对
array[0,2] # 3
# 多键对,第一个列表放行索引,第二个放列索引
array[[0,1,2],[1,2,3]] # [9, 4, 1]
6. 数组的拼接和拆分
# 拼接
np.vstack([array1,arrat2]) # 数组的竖向拼接,vertical
np.hstack([array1,arrat2]) # 数组的横向拼接,horizontal
np.stack([array1,arrat2]) # 数组的升维拼接
# 拆分
np.vsplit(array,2) # 数组的竖向拆分,分成2份,vertical
np.hsplit(array,2) # 数组的横向拼接,分成2份,horizontal
np.split(array,2) # 数组的降维拆分