NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。
创建
import numpy as np
np.array([1,2,3]) # 创建一维数组
np.array([1,2,3],[4,5,6]) # 创建二维数组
np.zeros((3,4)) # 创建三行四列的0数组
np.ones((3,4)) # 创建三行四列的1数组
np.full((3,4), 2) # 创建三行四列的数组,全部填充为2
np.arange(5) # 创建一维等差数组,0-4
np.arange(6).reshape(2,3) # 创建一维等差数组0-5,再变成二行三列矩阵
np.eye(3) # 创建3x3单位矩阵数组
np.random.rand(2,3) # 创建二行三列随机数组(随机数在0-1之间)
np.random.randint(5, size=(2,3))# 创建二行三列随机整数数组,随机数小于5
运算
a = np.array([10, 20, 30, 40, 50])
b = np.arange(1, 6)
a, b
np.sum(a) # 对所有数据求和
np.sum(a, axis=0) # 按列求和(行1列0)
np.sum(a, axis=1) # 按行求和
np.mean(a) # 取平均值
np.tile(a, (1,2)) # 横向拼接,一行两列,横向复制一遍
a.argsort(axis=0) # 将元素按列从小到大排序,返回对应为元素的原下标(行1列0)
a + - * / b # 数组加减乘除,只是点乘,不是矩阵乘法
np.dot(a, b) # 矩阵乘法
np.mat(A) * np.mat(B) # 变成矩阵后,*为矩阵乘法
a.T # 转置
np.linalg.inv(a) # 矩阵求逆
# 广播
a = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
b = np.array([1, 2, 3])
a + np.tile(b, (3,1)) # 将b广播成三行一列然后加上a
a + b # numpy 自动实现广播功能
索引
a[1,2] # 一行二列的数
a[-2:, 1:3] # 取倒数第二行到最后一行, 第二列到第三列
a[np.arange(3), 1] += 10 # 给a数组的第二列上的每个数加上10
np.arange(10) # 从0开始生成10个数
np.arange(3,7) # 生成3-6之间的数 左闭右开
a[a > 10] # 获取数组中满足某个条件的数
元素数据类型
a.dtype # 查看数组的数据类型
a.astype(np.float) # 转换数据类型