Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python AttributeError:“NDArray”对象没有属性“ravel”或“tolist”_Python_Mxnet_Gluon - Fatal编程技术网

Python AttributeError:“NDArray”对象没有属性“ravel”或“tolist”

Python AttributeError:“NDArray”对象没有属性“ravel”或“tolist”,python,mxnet,gluon,Python,Mxnet,Gluon,我正在使用一个巨大的数组,并试图递归这个嵌套数组中的每个整数。名为box_id的NDArray如下所示: [[[-1.] [-1.] [-1.] ... [-1.] [-1.] [-1.]]] 当我写作的时候 for ids in box_ids[0]: print(ids) 我回来了: <NDArray 1 @cpu(0)>, [0.] <NDArray 1 @cpu(0)>, [0.] <NDArray 1 @cpu(0)

我正在使用一个巨大的数组,并试图递归这个嵌套数组中的每个整数。名为box_id的NDArray如下所示:

[[[-1.]
  [-1.]
  [-1.]
  ...
  [-1.]
  [-1.]
  [-1.]]]
当我写作的时候

for ids in box_ids[0]:
    print(ids)
我回来了:

<NDArray 1 @cpu(0)>, 
[0.]
<NDArray 1 @cpu(0)>, 
[0.]
<NDArray 1 @cpu(0)>, 
[0.]
<NDArray 1 @cpu(0)>, 
[1.]
<NDArray 1 @cpu(0)>, 
[1.]
…一遍又一遍

我尝试过box_id.flatte,结果也一样。因此,我继续尝试.tolist和.ravel,但随后我得到属性错误,表示Numpy没有这些对象

基本上,我想要一个数组中所有单个整数的列表,这样我就可以对它们进行递归。理想情况下,最终列表可能类似于[0,0,0,1,1,…]。当我使用printids时,每个元素都有换行符和,这一事实真的令人困惑,我不知道如何摆脱它。当我使用printID时,我只需要如下所示: 0 0 1. 1

我希望这是有道理的。如果可以的话,非常感谢你的帮助

可以使用mxnet.ndarray.squesh删除未使用的嵌套维度,然后使用mxnet.ndarray.asnumpy转换为numpy数组以提取值列表,如下所示:

box_ids.squeeze().asnumpy().tolist()
如上所述,请注意,尽管MXNet Ndarray在设计上具有与Numpy阵列极其相似的API,但它们实际上是具有不同内部结构的完全不同的库。有关MXNet NDArray特性的更多详细信息,请参阅


>在CPU或GPU上以矢量化的方式闪闪发光,所以在实现一个NDAREX的循环之前,如果你只能在本地MXNET NDARRAY中实现。这可能会快得多,因为mxnet命令是在C++中异步运行的

那么[0]中的[i[0]对于i呢?那不是一个numpy的东西。numpydefines numpy.ndarray,不是ndarray。@Goyo有什么东西可以解决我的问题吗?可能是看它来自哪个包的文档,我不知道,因为你没有告诉我们。-mxnet ndarray与numpy.ndarray类似,但不完全相同。