mxnet中ndarra基础用法

from mxnet import nd
x = nd.arange(12)
x
[ 0.  1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11.]
<NDArray 12 @cpu(0)>
x.shape
(12,)
x.size
12
x = x.reshape(3,4)
x
[[ 0.  1.  2.  3.]
 [ 4.  5.  6.  7.]
 [ 8.  9. 10. 11.]]
<NDArray 3x4 @cpu(0)>
nd.zeros((2,3))
[[0. 0. 0.]
 [0. 0. 0.]]
<NDArray 2x3 @cpu(0)>
nd.ones((2,3,4))
[[[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]

 [[1. 1. 1. 1.]
  [1. 1. 1. 1.]
  [1. 1. 1. 1.]]]
<NDArray 2x3x4 @cpu(0)>
y = nd.array([[1,2,3,4],[5,6,7,8],[4,3,2,1]])
y
[[1. 2. 3. 4.]
 [5. 6. 7. 8.]
 [4. 3. 2. 1.]]
<NDArray 3x4 @cpu(0)>
#随机生成均值为0,标准差为1的正态分布数据
nd.random.normal(0,1,shape=(3,4))
[[ 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)>
#以下是ndarray的运算
x + y
[[ 1.  3.  5.  7.]
 [ 9. 11. 13. 15.]
 [12. 12. 12. 12.]]
<NDArray 3x4 @cpu(0)>
x*y
[[ 0.  2.  6. 12.]
 [20. 30. 42. 56.]
 [32. 27. 20. 11.]]
<NDArray 3x4 @cpu(0)>
x/y
[[ 0.          0.5         0.6666667   0.75      ]
 [ 0.8         0.8333333   0.85714287  0.875     ]
 [ 2.          3.          5.         11.        ]]
<NDArray 3x4 @cpu(0)>
y.exp()
[[2.7182817e+00 7.3890562e+00 2.0085537e+01 5.4598148e+01]
 [1.4841316e+02 4.0342880e+02 1.0966332e+03 2.9809580e+03]
 [5.4598148e+01 2.0085537e+01 7.3890562e+00 2.7182817e+00]]
<NDArray 3x4 @cpu(0)>
#x:3*4 , y.T:4*3 , 结果:3×3
nd.dot(x,y.T)
[[ 20.  44.  10.]
 [ 60. 148.  50.]
 [100. 252.  90.]]
<NDArray 3x3 @cpu(0)>
#连接ndarray,分别是在维度0和维度1上连接
nd.concat(x , y,dim=0),nd.concat(x,y,dim=1)
(
 [[ 0.  1.  2.  3.]
  [ 4.  5.  6.  7.]
  [ 8.  9. 10. 11.]
  [ 1.  2.  3.  4.]
  [ 5.  6.  7.  8.]
  [ 4.  3.  2.  1.]]
 <NDArray 6x4 @cpu(0)>,
 
 [[ 0.  1.  2.  3.  1.  2.  3.  4.]
  [ 4.  5.  6.  7.  5.  6.  7.  8.]
  [ 8.  9. 10. 11.  4.  3.  2.  1.]]
 <NDArray 3x8 @cpu(0)>)
#判别式,对应值相等返回1,否则0
x == y
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]
<NDArray 3x4 @cpu(0)>
x.sum()
[66.]
<NDArray 1 @cpu(0)>
#求范数
x.norm()
[22.494442]
<NDArray 1 @cpu(0)>
#将ndarray转换为标量
x.sum().asscalar()
66.0
#广播机制
a = nd.arange(3).reshape(3,1)
b = nd.arange(2).reshape(1,2)
a,b
(
 [[0.]
  [1.]
  [2.]]
 <NDArray 3x1 @cpu(0)>,
 
 [[0. 1.]]
 <NDArray 1x2 @cpu(0)>)
a+b
[[0. 1.]
 [1. 2.]
 [2. 3.]]
<NDArray 3x2 @cpu(0)>
#索引
x[1:3]
[[ 4.  5.  6.  7.]
 [ 8.  9. 10. 11.]]
<NDArray 2x4 @cpu(0)>
x[1,2]=9
x
[[ 0.  1.  2.  3.]
 [ 4.  5.  9.  7.]
 [ 8.  9. 10. 11.]]
<NDArray 3x4 @cpu(0)>
x[1:2,:]=12
x
[[ 0.  1.  2.  3.]
 [12. 12. 12. 12.]
 [ 8.  9. 10. 11.]]
<NDArray 3x4 @cpu(0)>
#ndarray和numpy的转换
import numpy as np

p = np.ones((1,2))
d = nd.array(p)
d
[[1. 1.]]
<NDArray 1x2 @cpu(0)>
d.asnumpy()
array([[1., 1.]], dtype=float32)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值