当我使用foo = np.empty(1)
创建一个空的numpy数组时,结果数组包含一个float64:
>>> foo = np.empty(1)
>>> foo
array([ 0.])
>>> type(foo[0])
<type 'numpy.float64'>
为什么它不会返回array([])
?
答案 0 :(得分:7)
您没有阅读the documentation,其中说:
返回给定形状和类型的新数组,而不初始化条目。
{{1}}与创建没有元素意义上的“空”数组无关。它只是意味着数组没有初始化它的值(即,它们是不可预测的,并且取决于为数组分配的内存中发生的任何事情)。
答案 1 :(得分:1)
foo = np.empty(0)
是您需要的
您将其大小指定为1,您需要将其设置为0,就像他们在评论中告诉您的那样
答案 2 :(得分:0)
如果您想要尺寸为{0}的尺寸= 0的数组,则可以使用N
:
np.empty((0,)*N)
当然,如果数组有>>> np.empty((0,)*1)
array([], dtype=float64)
>>> np.empty((0,)*2)
array([], shape=(0, 0), dtype=float64)
,则.size == 0
与empty
相同