繁体   English   中英

无法重新创建numpy.array,其中每个元素都具有numpy.void类型

[英]Having trouble recreating an numpy.array where each element has a type of numpy.void

我一直在寻找如何制作一个numpy.array的时代,其中每个元素都具有numpy.void的类型。 我需要这样做的原因是从文本文件中重新创建一个具有上面指定的元素类型的numpy.array。 然后,另一个函数需要此数组。 通过搜索,我尝试了以下给出错误的示例。

>>> import numpy as np 
>>> x = np.array([1,2,4], dtype='V')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected a readable buffer object

>>> x=np.array([1,2,3], dtype=np.dtype((void,10)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object is not callable

在此先感谢您的帮助。

为了简单起见,在任何dtype上都可能是这样的:

x = np.array([1,2,4])
x_void = x.view( np.dtype((np.void, x.dtype.itemsize)) )

>>> x_void
array([, , ],
      dtype='|V8')
>>> x_void.dtype
dtype('V8')

数组x实际上是np.int类型,但是您只是将其视为一个空数组。 创建dtype void数组很难直接进行,并且会产生一些问题,例如:

x = np.zeros(3, dtype=np.dtype((np.void,8)))
>>> x[0] = 5
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: expected a readable buffer object

您将必须执行以下操作:

>>> x[0] = np.array(5).view(np.dtype((np.void,8)))

除非您真的知道自己在做什么,否则最好简单地将数组视为void

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM