MXNet对数据的操作

2022-11-22,,

首先引入一个数学概念
范数

导入NDarray

from mxnet import nd

创建DNarray

X = nd.arange(12)

方法 功能 参数实例
nd.arange() 创建一个行向量。有shape,size属性 12
X.reshape() 改变向量的形状 (3, 4)
nd.zeros() 创建一个元素 都为0的向量 (3, 4)
nd.ones() 创建一个元素都为1的向量 (3, 4)
nd.array() 创建一个向量 [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]
nd.random.normal() 生成元素采自于正太分布的向量 0, 1, shape=(3, 4)

运算

运算符 结果 参数实例
+ 相同位置元素相加
- ~相减
* ~相乘
/ ~相除
X.exp() 以元素为知数做e为底数的幂运算
nd.dot() 两向量点乘
nd.concat() 在制定维度上连接两个向量 X, Y, dim=0
== 查找两个向量元素相同的位置 X == Y
X.sum() 求和
Y.norm().asscalar() 求向量的L2范数,并将范数转化为python中的标量

广播机制

将两个shape不同的向量做运算会触发广播机制,如下面的例子:

把X的第一列复制到第二列得到一个新向量,把Y的第一行复制到第二,三行又得到一个新向量,这样两个向量就可以相加。这就是广播机制

索引

索引 结果
X[1 : 2] 取向量第二行到第三行的数据
X[1, 2] 取向量第二行第三个数据
X[1 : 2, : ] = 1 给向量第二行元素全赋值为1