np.reshape() 如果没有足够的元素,则填充

her*_*uzz 5 python numpy pandas

是否可以重塑 np.array() 并且在新形状不一致的情况下,用 NaN 填充空白空间?

前任:

arr = np.array([1,2,3,4,5,6])
Run Code Online (Sandbox Code Playgroud)

目标,例如 2x4 矩阵:

[1 2  3   4]
[5 6 NaN NaN]
Run Code Online (Sandbox Code Playgroud)

我需要这个来绕过错误: ValueError: cannot reshape array of size 6 into shape (2,4)

谢谢,

cs9*_*s95 6

我们将np.pad首先使用,然后重塑:

m, n = 2, 4
np.pad(arr.astype(float), (0, m*n - arr.size), 
       mode='constant', constant_values=np.nan).reshape(m,n)


array([[ 1.,  2.,  3.,  4.],
       [ 5.,  6., nan, nan]])
Run Code Online (Sandbox Code Playgroud)

这里的假设arr是一维数组。在此代码之前添加断言以在意外情况下失败。