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

标签 python numpy

所以我在列表中有一堆二维 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/

相关文章:

python - Numpy:按键函数排序

python - 使用 numpy 和 matplotlib 叠加图像分割

python - 如何在 Pyspark 中捕获日志级别错误和警告?

python - 从指定目录和子目录嵌套 QTreeview

Python 在字符串列表中的搜索模式

python - Numpy .A1 数组并不总是存在

每次循环后 Python 保存到磁盘的速度变慢

python - pandas 仓库库存累计总数

python - Pandas usecols 除了最后一个

python - 运行时警告 : overflow encountered in exp in computing the logistic function