注:
在这里,只是选择一些常用的方法就行了,比如生成数组中,array()可以有好几种方式,但本人只是保留了常用的一些
参考:Numpy 官网教程
1. 生成数组
>>> import numpy as np
>>> a = np.array([ [1,2,3,4], [1,2,3,4] ] ) # 直接填写生成
>>> a
array([[1, 2, 3, 4],
[1, 2, 3, 4]])
>>>
>>> b = np.zeros((3,4)) # 生成三行四列元素为 0 的二维数组
>>> b
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])
>>>
>>> b = np.zeros((3,4),dtype = np.int) # 可以修改数据类型
>>> b
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])
>>>
>>> c = np.ones((3,4)) # 类似地还有 ones() 方法
>>> c
array([[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.],
[ 1., 1., 1., 1.]])
>>>
>>> d = np.arange(10) # 生成范围在[0,10),间隔为 1 的矩阵
>>> d
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> d = np.arange(1,10,1) # 生成范围在[1,10),间隔为 1 的矩阵
>>> d
array([1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> d.reshape(3,3) # 顾名思义,重组形状,变为 3*3
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
2. 基本运算
- 加减乘除
+ - * / **
这 5 种运算为矩阵对应元素相互运算 - 可以进行三角函数的计算:
np.sin(a)
- 布尔运算:
a<35
,逐个元素和 35 进行比较,返回布尔矩阵 - 矩阵的乘法,得满足
(a,n)*(n,b)
形式
>>> import numpy as np
>>> a = np.array([[1,2],[3,4]])
>>> b = a
>>>
>>> a.dot(b)
array([[ 7, 10],
[15, 22]])
>>>
>>> np.dot(a,b) # 一样使用
array([[ 7, 10],
[15, 22]])
- 对单一数组的操作,参数中
axis = 0
表示列,axis = 1
表示行
>>> b = np.arange(16).reshape(4,4)
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11],
[12, 13, 14, 15]])
>>>
>>> b.sum() # 全部元素的和
120
>>> b.sum(axis=1) # 列和
array([ 6, 22, 38, 54])
>>> b.sum(axis=0) # 行和
array([24, 28, 32, 36])
>>>
>>> b.min() # 和 sum() 一样使用
0
>>> b.max()
15
>>> b.cumsum(axis=1) # 每行元素的累积和
array([[ 0, 1, 3, 6],
[ 4, 9, 15, 22],
[ 8, 17, 27, 38],
[12, 25, 39, 54]], dtype=int32)
>>>
>>>
>>> c = np.arange(4)
>>> c
array([0, 1, 2, 3])
>>> np.exp(c) # 以 e 为低的指数运算
array([ 1. , 2.71828183, 7.3890561 , 20.08553692])
>>> np.sqrt(c)
array([ 0. , 1. , 1.41421356, 1.73205081])
这节讲了一些基本的运算,差不多能够满足平时的使用了,但是官网教程里还有 long long 长呢,继续慢慢看呗