让
a = np.array([[1, 2], [3, 4]])
a
array([[1, 2],
[3, 4]])
Run Code Online (Sandbox Code Playgroud)
然后使用 resize
b = np.resize(a, (3, 3))
b
array([[1, 2, 3],
[4, 1, 2],
[3, 4, 1]])
Run Code Online (Sandbox Code Playgroud)
b现在a以不稳定的顺序拥有来自if 的所有信息。有没有办法利用它来创建左上角看起来像 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]])
Run Code Online (Sandbox Code Playgroud)
显然,上面的代码完成了同样的事情。我不禁认为resize可以以某种方式使用它来更有效地完成此任务。
也许看看pad:
>>> np.pad(a, ((0,1),(0,1)), 'constant', constant_values=np.nan)
array([[ 1., 2., nan],
[ 3., 4., nan],
[ nan, nan, nan]])
Run Code Online (Sandbox Code Playgroud)
请注意,这nan实际上是一个浮点数,因此如果尝试使用整数 dtypes 执行此操作,请务必小心。您可能更喜欢使用掩码数组。
| 归档时间: |
|
| 查看次数: |
4127 次 |
| 最近记录: |