Numpy 杂记

#+SETUPFILE: ~/Dropbox/Doc/Org_Templates/level-1.org

Arrays(矩阵) 定义

a = np.array([[1, 2, 3]]) # 1行3列矩阵
np.array([[1], [2], [3]]) # 3行1列矩阵
np.array([[1,2,3],[4,5,6]]) # 2行3列矩阵
a.ndim # 矩阵的维度
a.shape # 各维度大小
a.size # 矩阵元素个数
a.dtype # 矩阵元素类型
np.zeros((2,2)) # 创建一个 2x2 的矩阵, 元素全为 0
np.ones((1,2)) # 创建一个 1x2 的矩阵, 元素全为 1
np.full((2,2), 7) # 创建一个 2x2 的矩阵, 元素全为 7
np.eye(2) # 创建一个 2x2 的单位矩阵
np.random.random((2,2)) # 创建一个 2x2 的矩阵, 矩阵元素的值为随机数,范围为 [0.0, 1.0) 

Arrays(矩阵) 寻址

寻址
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])
In [148]: print a
[[ 1  2  3  4]
 [ 5  6  7  8]
 [ 9 10 11 12]]
print a[1, 2] # 打印 7
布尔寻址
In [178]: a = np.array([[1,2], [3, 4], [5, 6]])
In [179]: bool_idx = (a > 2)
In [180]: print bool_idx 
[[False False]
 [ True  True]
 [ True  True]]
In [182]: print a[bool_idx]
 [3 4 5 6]
分片
In [150]: print a[0:2, 2:4]     # 用 a 的 0,1 行和2,3列切分子矩阵
[[3 4]
 [7 8]]

# 打印 "[1 6 9]", 相当于 np.array([a[0, 0], a[1, 1], a[2, 0]]) 
print a[[0, 1, 2], [0, 1, 0]]

(Datatypes) 数据类型

TODO

操作

# 相加
In [183]: x = np.array([[1,2],[3,4]], dtype=np.float64)
In [184]: y = np.array([[5,6],[7,8]], dtype=np.float64)
In [185]: print x + y # 等于 np.add(x, y)
[[  6.   8.]
 [ 10.  12.]]

# 减
x - y # np.subtract(x, y)

# 乘
x * y # np.multiply(x, y)

# 除
x / y # np.divide(x, y)

# 求每个元素的平方根
np.sqrt(x)

# 矩阵相乘: 内积,外积
x.dot(y) # np.dot(x, y)

# sum 操作
np.sum(x) # 计算所有元素的和
np.sum(x, axis=0) # 按列计算所有元素的和
np.sum(x, axis=1) # 按行计算所有元素的和

# 矩阵的转置
x.T

resource

http://cs231n.github.io/python-numpy-tutorial/

https://www.zybuluo.com/chanvee/note/89078

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦