python - 形状不等的 Numpy 堆栈

标签 python python-3.x numpy

我注意到 combining 2D arrays to 3D arrays 的解决方案通过 np.stacknp.dstack 或简单地传递数组列表仅在数组具有相同的 .shape[0] 时有效。

例如,假设我有:

print(arr)
[[0 1]
 [2 3]
 [4 5]
 [6 7]
 [8 9]]

很容易到达:

print(np.array([arr[2:4], arr[3:5]])) # same shape
[[[4 5]
  [6 7]]

 [[6 7]
  [8 9]]]

但是,如果我传递一个长度不等的数组列表,我会得到:

print(np.array([arr[:2], arr[:3]]))
[array([[0, 1],
       [2, 3]])
 array([[0, 1],
       [2, 3],
       [4, 5]])]

我怎样才能简单地:

[[[0, 1]
  [2, 3]]
 [[0, 1]
  [2, 3]
  [4, 5]]]

我尝试过的:一些其他的 Array manipulation routines .

注意:最终想要对超过 2 个数组执行此操作,因此 np.append 可能并不理想。

最佳答案

Numpy 数组必须是矩形的,因此使用 numpy 数组无法获得您想要获得的结果。

你需要一个不同的数据结构。哪一个合适取决于您要对这些数据做什么。

关于python - 形状不等的 Numpy 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951624/

相关文章:

python - 为什么 dill 比 numpy 数组的 pickle 更快更磁盘高效

python - 如何使用 Selenium 浏览整个网站?

javascript - 如何在 Canvas 上创建 "fuzzy" Material 设计类型阴影?

Python - Loadtxt 包含大文件的特定行

windows - 当我使用 pytesseract 和 CREATE_NO_WINDOW 运行 tesseract 时如何隐藏控制台窗口

python - 在单个字典理解中插入列表和切片

python - 将唯一字符串分组到列中并对单独的列值执行函数

python-3.x - 定义在拟合后返回两个参数的偏斜高斯函数

python - 打乱二维数组

python - 替换 numpy 数组中包含 NaN 的值