python - 用填充堆叠 numpy 数组

标签 python arrays numpy

我有一个包含 32 个 numpy 数组的列表,每个数组的形状都是 (n, 108, 108, 2),其中 n 在每个数组中都是不同的。我想将它们全部堆叠起来以创建一个形状为 (32, m, 108, 108, 2) 的 numpy 数组,其中 m 中的最大值ns,较短的数组用零填充。

我该怎么做?

我问了something similar昨天,但在我的情况下使用深度数组时,那里的答案似乎中断了。

具体来说,我最终采用了这个解决方案,它产生了最干净的代码:

data = np.column_stack(zip_longest(*data, fillvalue=0))

但现在它抛出这个错误:

ValueError: setting an array element with a sequence.

最佳答案

我在 this webpage 中找到了神的答案.

pad_sequences 函数正是我所需要的。

from tensorflow.python.keras.preprocessing.sequence import pad_sequences
result = pad_sequences(imgs, padding='post')

关于python - 用填充堆叠 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53071212/

相关文章:

java - 我想在对象数组的对象中打印一个方法,但不能。为什么?

Javascript Array.sort 实现?

python - 在 python 中处理斜杠

python - 我有什么错吗?大约 'one-line FOR statement'和 'EXEC'

php - 文本的索引词

python - 了解此 Pandas 脚本

python - 以列表作为值的矩阵运算

python - 为什么在没有 "self"且没有装饰器的情况下声明的 Python 类的方法不会引发异常?

python - Sympy 和 Numpy 无法反转使用 Sympy 创建的矩阵

python - 在 Python 中插值 3d 数组扩展