MXnet动手学深度学习-数据操作

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.  ]]

总结

这些语句都是没有必要死记的,后续用的多了就能记住。用到那个的时候百度一下即可。熟能生巧

猜你喜欢

转载自blog.csdn.net/xiaobiyin9140/article/details/84503205