初始化的空numpy数组实际上不是空的(包含零)

s.k*_*s.k 0 python arrays numpy

为了在numpy.ndarray中存储许多3D点坐标元组,我在为每个特征输入循环之前初始化一个空的numpy数组.

为此,我目前在进入循环之前执行此操作:

import numpy as np
pointsarrray = np.empty((1,3))
Run Code Online (Sandbox Code Playgroud)

但这会产生一个几乎为空的数组:

array([[  5.30498948e-315,   0.00000000e+000,   7.81250000e-003]])
Run Code Online (Sandbox Code Playgroud)

在填充pointsarray我的循环之后,我这样做:

pointsarray = np.vstack((pointsarray, [np.array(myPoint)]))
Run Code Online (Sandbox Code Playgroud)

(它也适用于np.append)

我最后需要在退出循环后删除数组的第一行,因为第一行总是包含初始化步骤中的值!

这不是什么大问题,但我想知道是否有一种更清洁的方法来实现一个真正空的阵列,我的意思是; 里面什么都没有(它显示了一行,我无法弄清楚为什么)但是在正确的尺寸?

Psi*_*dom 7

您需要将形状设置为(0, 3)具有要堆叠的正确列数,但实际上没有数据:

import numpy as np
pointsarrray = np.empty((0,3))

pointsarrray
# array([], shape=(0, 3), dtype=float64)
Run Code Online (Sandbox Code Playgroud)