数据操作 讨论区


#21

请教一个关于combinations的问题,现有ndarray两个:A和B,A.shape=[3,5] B.shape=[2,5], 行数代表元素个数,列代表每个元素的维度。所以,A表示有三个元素,每个5维,B亦同。现需要A和B的所有组合,即: (A[0,:], B[0,:]), (A[0,:], B[1,:]), (A[1,:], B[0,:]), (A[1,:], B[1,:]), (A[2,:], B[0,:]), (A[2,:], B[1,:]),该组合可以赋值到一个新的narray:C中,结果为C.shape = [6,10], 行表示所有组合的元素,列表示组合后的元素维度(5+5=10), 请教大牛帮忙解答一下,谢谢了


#22

请教,split函数的,反操作是什么?有没有merge之类的函数?


#23

小白请教一下,如果在spyder中使用nd.array创建一个矩阵,它为什么不会在variable explorer中出现呢?谢谢?


#24

新手理解,如果numpy类型dtype为浮点float且为“float64”则会省略dtype=float64吧,如果整型的dtype为“int32”也会省略,但是dtype为“float16”或“float32”或“int16”等等。。。。则会显示。新手理解不知道对不对。


#25

我刚刚尝试将numpy的str类型转换成nd.array,但是失败了,请问现在nd.array支持str类型吗?


#26

运算内存开销问题

请教,out参数是如何避免了临时内存开销的?不总得需要个内存来存储值吗?

#27

m = nd.arange(9).reshape(3,-1)
n = nd.arange(9).reshape(3,-1) +2

x=nd.concat(m[:, 1:-1], n[:, -1:])
y =nd.concat(m[:, 1:-1], n[:, -1])
后者报错, 请教为什么


#28

In [ 6 ]: m[:, 1:-1]

Out[ 6 ]:

[[1.]

[4.]

[7.]]

<NDArray 3x1 @cpu(0)>

In [ 7 ]: n[:, -1]

Out[ 7 ]:

[ 4. 7. 10.]

<NDArray 3 @cpu(0)>

In [ 8 ]: n[:, -1:]

Out[ 8 ]:

[[ 4.]

[ 7.]

[10.]]

<NDArray 3x1 @cpu(0)>

可以看一下形状的不同


#29

老师您好,想问一下NDArray这边有没有提供计算标准差的函数呢?


#30

应该可以从x和x^2的mean算


#32

X = nd.random_normal(shape=(2, 4))
indices = nd.argsort(X, axis=1)
res = X[indices] 这样操作的结果不对,应该怎样操作呢?用indices将原来的数组X进行排序


#33

mxnet.ndarray.eye函数,有时候可以联想一下matlab的函数,一般都是对应的


#34

IN 26是不是应该改成:
before = id(Y)
nd.elemwise_add(X, Y, out=Y)
id(Y) == before


#35

操作:
X = x.reshape((3,4))
X

报错:OSError: exception: access violation reading 0x0000000000000000
求解决方案


#36


新手一个问题,这里该如何显式的构建一个三个维度的矩阵呢?我尝试过下面的代码,似乎并不能运行。
Y= nd.array([[[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 1]],[[2, 1, 4, 3], [1, 2, 3, 4], [4, 3, 2, 2]])


#37

想请教一下这个是什么原因,第一行就运行不了,环境已经安装好了?


#38

因为x[1,2]中1和2代表索引,1代表第二行,2代表第三列,通过逗号分隔开,分别表示行和列。而x[1:2,1:3]中1:2是左闭右开,所以代表第二行,1:3也是左闭右开,所以代表第二列和第三列:grin:


#39

请问,我想从列表中找到指定索引的数据
from mxnet import nd
a = [1, 2, 3]
b = nd.take(a=nd.array(a), indices=nd.array([2, 1]))
print(b) # 输出[3. 2.]

但是当写成如下格式
from mxnet import nd
a = [“中国”, “北京”, “故宫”]
b = nd.take(a=nd.array(a), indices=nd.array([2, 1]))
print(b) # 报错,并没有输出[“故宫”, “北京”]
报错。

请问,有解决办法吗?


#40

不知道如何新开问题,借用宝地哈!
做2.2.8练习的时候:
C1 = nd.arange(8).reshape((4, 2))
D1 = nd.arange(10).reshape((2, 5))
C1 + D1 会报错,提示l ==1 or r == 1 fail
reshpare把其中把2改为1后:
C1 = nd.arange(8).reshape((4, 1))
D1 = nd.arange(10).reshape((1, 5))
C1 + D1
Out:
[[0. 1. 2. 3. 4.]
[1. 2. 3. 4. 5.]
[2. 3. 4. 5. 6.]
[3. 4. 5. 6. 7.]]
广播有什么限制吗?或者说只有1才能广播?


#41

这个batch_dot只支持3D3D的矩阵,aa=a.reshape(32,1024,100,1) bb=b.reshape((1024,100,1,1)) c=batch_dot(aa,bb) 这时候会报batch_dot currently only support 3D3D