Numpy基础
1 array属性
numpy.array() #将列表转换为数组
#例
array = numpy.array([[1,2,3],[4,5,6]])
- 获取数组的维度数(维度数其实就是看’['有多少个。没有:0维;一个:1维;两个:2维)
#dim = 2
dim = array.ndim
- 获取数组的行数和列数
#(2,3)
numpy.array.shape
- 获取数组的总元素个数
numpy.array() #将列表转换为数组
#size = 6
size = array.size
2 array创建
import numpy as np
- 创建数组时可以设置数组元素的类型 dtype
np.array([1,2], dtype=np.int)
- 创建一个元素全为0的矩阵
np.zeros((2,2)) #1行2列的全0矩阵
'''
输出结果:[[0. 0.],
[0. 0.]]
'''
- 创建一个元素全为1的矩阵
np.ones((2,2)) #1行2列的全0矩阵
'''
输出结果:[[1 1],
[1 1]]
'''
- 生成有序数组
np.arange(10, 20, 2) #起始值,末尾值,步长 [10,20)
'''
输出结果:[10,12,14,16,18] 不包括20
'''
- 重新设置数组行列数
np.arange(10, 22, 2).reshape((2,3)) #起始值,末尾值,步长 [10,20)
'''
输出结果:[[10,12,14,
16,18,20]]
'''
- 设置数组个数,起始和末尾值自定义,中间数随机
np.linspace(1, 10, 5) #从1到10产生5个数,步长随机
'''
输出结果:[1,*,*,*,10] 包括10
'''
3 基础运算
加减法就是array中的对应元素逐个相加减
python中的次方要用**而不是^
- 乘法
c = a*b #这是array中对应元素逐个相乘
c = np.dot(a,b) #这是用矩阵乘法法则相乘
c = a.dot(b) #第二种写法
- 三角函数
b = np.sin(a)
c = np.cos(a)
d = np.cos(a)
- 随机生成(为什么有两次random?random模块下的random方法)
np.random.random((2,2)) #产生的数字均为0~1,传入参数为行列数
- 找到矩阵中的最大值,最小值
np.max(array)
np.min(array)
- 矩阵中所有元素求和
np.sum(array)
可以添加axis参数,求行或列的最大值、最小值和求和
np.sum(array, axis=1) #axis=1表示行,=0表示列
- 求最小值、最大值的索引
np.argmin(array) #返回array中最小值的索引值
np.argmax(array) #返回array中最大值的索引值
- 求array的平均值
np.mean(array)
array.mean()
- 求array的中位数
np.median(array)
- 求array的累计和
np.cumsum(array)
- 求array的临近两数的差
np.diff(array)
- 求array中非0的数的索引,前行后列
np.nonzero(array)
- 对array排序(逐行从小到大)
np.sort(array)
- 求转置矩阵
np.transpose(array)
array.T
- 将array中小于x的数变x,大于y的数变y
np.clip(array, x, y)
4 array合并
- 将两个矩阵以vertical的形式合并成一个矩阵
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.vstack(A,B)
'''
合并结果:
[[1 1 1]
[2 2 2]]
'''
- 将两个矩阵以horizontal的形式合并成一个矩阵
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.hstack(A,B)
'''
合并结果:
[[1 1 1 2 2 2]]
'''
- 使用concatenate可以同时合并多个array
A = np.array([1,1,1])
B = np.array([2,2,2])
C = np.concatenate((A,B,A,B),axis=0) # 0是纵向,1是横向
'''
合并结果:
[[1 1 1
2 2 2
1 1 1
2 2 2]]
'''