如何使 numpy 数组列表都具有相同的形状?

2024-01-02

所以我的列表中有一堆 2d Numpy 数组,我想确保它们都具有相同的形状。我知道每个数组的第二个维度是相同的,但第一个维度有所不同。

假设数组 X 的形状为 (n,m),数组 Y 的形状为 (n+2,m)。我想向数组 X 添加两行零,以便 X 和 Y 都是 (n+2,m)。

遍历列表并确保所有数组具有相同形状的最 Python 风格的方法是什么?假设我知道列表中所有数组的第一维的最大值是多少 - 称之为 N - 并且,正如我所提到的,我知道所有数组的第二维都有 m。

谢谢大家!


一行:

[np.r_[a, np.zeros((N - a.shape[0], m), dtype=a.dtype)] for a in your_arrays]

可能更具可读性

for i,a in enumerate(your_arrays):
  rows, cols = a.shape
  if rows != N:
    your_arrays[i] = np.vstack([a, np.zeros((N - rows, cols), dtype=a.dtype)])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 numpy 数组列表都具有相同的形状? 的相关文章

随机推荐