一、创建数组
- 导入 numpy 模块
import numpy as np
- 创建数组:array
a = np.array([1,2,3])
b = np.array([1.2,2.3,3.4])
c = np.array([[1,2,3],[4,5,6]])#用中括号括住
- 查看数据类型:dtype
a.dtype
b.dtype
- 全0数组:zeros
np.zeros((2,3))#全用圆括号
- 全1数组:ones
np.ones((3,4),dtype=np.int16)#全用圆括号,可以加dtypy来规定其类型
- 随机数组:empty
np.empty([2,3])#里面用中括号
- 创建有范围的数组:arange
np.arange(10,30,5)#从10到30,30取不到,5个数字一步
- (0,1)内均匀分布的随机数组:random.rand
np.random.rand(3,2)
- (0,2)内有5个数是数组:random.randint
np.random.randint(3,size=5)
- 符合状态分布的随机数组:random.randn
np.random.randn(3)
二、数组的索引与切片
- 一维数组
a = np.arange(0,10,1)
- 取一维数组的第3位数:数组名+中括号
a[2]#从0开始数数
- 取一维数组的第2个到第4个数组:数组名+中括号+中括号里用冒号隔开
a[1:4]
- 将一维数组从后往前数:-1
a[::-1]
- 二维数组
b = np.array([[1,2,3],[4,5,6],[7,8,9]])
- 取二维数组第2行第3列的数组元素:数组名+中括号
b[1,2]#从0开始数数
- 取二维数组的第2列数据
b[:,1]#中括号里第1个数是行坐标,第2个数是列坐标,全取用":"
- 取二维数组的第3列的前两行数据
b[:2,2]
三、数组的基本运算
- 创建两个不同的数组
a = np.array([5,6,7,8])
b = np.array([1,2,3,4])
- 减法:-
a - b
- 平方:**+数字
b**2
- 正弦值:sin()
np.sin(a)
- 逻辑运算
b < 3
- 均值:mean
np.mean(b)
- 方差:var
np.var(b)
线性代数运算
- 创建两个数组
A = np.array([[1,1],[0,1]])
B = np.array([[2,0],[3,4]])
- 对应元素相乘:*
A * B
- 矩阵相乘:.dot()
A.dot(B)
- 矩阵求逆:linalg.inv()
np.linalg.inv(A)
- 行列式:linalg.det()
np.linalg.det(A)
四、数组维度变换
- 创建一个3乘4的数组
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
- 查看数组的维度:shape
a.shape
- 把数组转换为一维数组:ravel
a.ravel()
- 把数组转换为 2*6 的数组:reshape()
a.reshape(2,6)
- 数组的转置:T
a.T
- -1维度表示 NumPy会自动计算该维度
a.reshape(3,-1)#3行,自动算有几列
五、数组合并与切分
- 创建两个数组
A = np.array([[1,1],[0,1]])
B = np.array([[2,0],[3,4]])
- 合并数组:hstack(())
np.hstack((A,B))
- 按列合并:vstack(())
np.vstack((A,B))
- 创建数组
C = np.array([[1,2,3,4],[0,1,2,3],[4,3,2,1],[2,3,4,1]])
- 切分为两个数组:hsplit()
np.hsplit(C,2)
- 切分为两个数组:vsplit()
np.vsplit(C,2)
熟能生巧!!!