让
a = np.array([[1, 2], [3, 4]])
a
array([[1, 2],
[3, 4]])
然后使用resize
b = np.resize(a, (3, 3))
b
array([[1, 2, 3],
[4, 1, 2],
[3, 4, 1]])
b
现在拥有来自a
的所有信息,如果处于不稳定的顺序中。有没有办法利用它来创建左上角的内容,但现在有一个新列和一个新行的np.nan?
c = np.empty(b.shape)
c.fill(np.nan)
c[:a.shape[0], :a.shape[1]] = a
c
array([[ 1., 2., nan],
[ 3., 4., nan],
[ nan, nan, nan]])
显然上面的代码完成了同样的事情。我不禁想到resize
可以某种方式用来更有效地实现这一目标。
答案 0 :(得分:2)
也许看看pad
:
>>> np.pad(a, ((0,1),(0,1)), 'constant', constant_values=np.nan)
array([[ 1., 2., nan],
[ 3., 4., nan],
[ nan, nan, nan]])
请注意,nan
实际上是一个浮点数,因此如果尝试使用整数dtypes,请注意。您可能更喜欢使用蒙版数组。