一、创建数组二、数组的索引与切片三、数组的基本运算四、数组维度变换五、数组合并与切分 一、创建数组
导入 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.dtypeb.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)
熟能生巧!!!