python - 如何将逆向转置应用到 numpy 数组

标签 python numpy

<分区>

我知道这个问题非常基础,但我正在寻找最好的方法来做到这一点。我的问题是我们如何将 numpy 数组 reshape 为所附图片中的垂直箭头? numpy reshape

最后想把一个120*64*200整形为1200*64*20!

最佳答案

你也可以用transpose来做

arr = np.array([i for i in range(1,19)])

arr3d = arr.reshape(3, 2,-1)    # (1)

print(arr3d)

arr3d = arr3d.transpose(1,0,2)  # (2) magic happens here

print(arr3d)

arr3d = arr3d.reshape(-1,3)     # (3)

print(arr3d)

第一次 reshape 后,内容将是:

[[[ 1  2  3]
  [ 4  5  6]]

 [[ 7  8  9]
  [10 11 12]]

 [[13 14 15]
  [16 17 18]]]

通过神奇的转置你会得到:

[[[ 1  2  3]
  [ 7  8  9]
  [13 14 15]]

 [[ 4  5  6]
  [10 11 12]
  [16 17 18]]]

然后再整形为 2d。

通过方法链,我们可以组合成一条语句,例如:

arr.reshape(3, 2, -1).transpose(1, 0, 2).reshape(-1, 3)

关于python - 如何将逆向转置应用到 numpy 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56943772/

相关文章:

python - 在给定稀疏矩阵数据的情况下,Python 中计算余弦相似度的最快方法是什么?

python - 强制乘法使用 __rmul__() 而不是 Numpy 数组 __mul__() 或绕过广播

python - 如何使用 pandas/numpy 标准化/规范化日期?

python - 初学者 - 在程序中集成 optparse

python - 捕获输出时,将子进程与 select 和 pty 一起使用会挂起

python - Python 3.4 中的 UnboundLocalError

python - 矩阵中的行相乘

python - 如何在 python 中分组和计算二项式变量?并绘制这个图

python - doom 实现时在 vizdoom 中找不到 basic.cfg 文件

Python:如何对列表中的元素进行分组并获取组的总和