NDArray–数据操作功能
NDArray是存储和变换数据的主要工具。其还提供了GPU计算和自动求梯度等等功能。
以下为写到test01.py文件中的代码。
from mxnet import nd
x = nd.arange(12)
print(x)
print(x.shape) #获取NDArray实例形状
print(x.size) #得到实例中的元素个数
x = x.reshape((3, 4)) #将向量x改变成一个矩阵,3x4的矩阵
print(x)
print(x.sum()) #输出矩阵x的和,所有元素相加
print(nd.zeros((2, 3, 4))) #创建2x3x4的矩阵
print(nd.ones((3, 4))) #创建单位矩阵
y = nd.array([[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]]) #创建指定类型的矩阵
print(y)
x1 = nd.random.normal(0 ,1, shape=(3, 4))
print(x1) #创建形状为3x4的NDArray,其中的每个元素都是随机采样于均值为0,标准差为1的>>
正太分布
print(x + y) #输出x与y相加的结果
print(x * y) #输出x与y相乘的结果
print(x / y) #输出x与y相除的结果
z = nd.dot(x, y.T) #使用dot函数做矩阵运算,将x与y的转置做乘法运算
xy01 = nd.concat(x, y, dim = 0) #连接到行上
print(xy01)
xy02 = nd.concat(x, y, dim = 1) #连接到列上
print(xy02)
print(x[1:3]) #行索引,会输出矩阵x的索引为1与2的两行
x[1, 2] = 9 #给矩阵的索引为1,2位置重新赋值
print(x)
运行程序:python test01.py
得到结果如下:
[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.]
<NDArray 12 @cpu(0)>
(12,)
12
[[ 0. 1. 2. 3.]
[ 4. 5. 6. 7.]
[ 8. 9. 10. 11.]]
<NDArray 3x4 @cpu(0)>
[[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]]
<NDArray 2x3x4 @cpu(0)>
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
<NDArray 3x4 @cpu(0)>
[[2. 1. 4. 3.]
[1. 2. 3. 4.]
[4. 3. 2. 1.]]
<NDArray 3x4 @cpu(0)>
[[ 2.2122064 0.7740038 1.0434403 1.1839255 ]
[ 1.8917114 -1.2347414 -1.771029 -0.45138445]
[ 0.57938355 -1.856082 -1.9768796 -0.20801921]]
<NDArray 3x4 @cpu(0)>
[[ 2. 2. 6. 6.]
[ 5. 7. 9. 11.]
[12. 12. 12. 12.]]
<NDArray 3x4 @cpu(0)>
[[ 0. 1. 8. 9.]
[ 4. 10. 18. 28.]
[32. 27. 20. 11.]]
<NDArray 3x4 @cpu(0)>
[[ 0. 1. 0.5 1. ]
[ 4. 2.5 2. 1.75]
[ 2. 3. 5. 11. ]]
总结
这些语句都是没有必要死记的,后续用的多了就能记住。用到那个的时候百度一下即可。熟能生巧