所以我在列表中有一堆二维 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)])
关于python - 如何使 numpy 数组的列表都具有相同的形状?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827060/