我有一个清单
A = [np.array([-25.2]), np.array([20.2]), np.array([15.3]),
np.array([]), np.array([]), np.array([-17.5]), np.array([19.3])]
如您所见,列表包含空白数组。当我使用时:
A1 = np.array(A)
它使它成为我无法在spyder中打开的对象。如果我使用:
A2 = np.concatenate(A1).astype(None)
它确实使它成为一个数组,但是取消了空白数组。我应该如何将其转换为保留空白数组的普通数组。
答案 0 :(得分:0)
这取决于您要代替空白数组的内容。 numpy数组必须具有相同的类型,因此不能只包含空白。您可以填写NaN或零等。
此外,您别无选择,只能遍历整个数组。
k = [None] * len(a)
for i,x in enumerate(a):
if len(x) == 0:
k[i] = np.nan
else:
k[i] = x
a = np.asarray(k, dtype=float)
我建议您首先看一下生成a
数组的原因,并加以解决,以确保没有空白数组。