Numpy 转置数据示例

Numpy transpose data in example

所以我发现这很难想象,但基本上我已经使用 numpy (python3.x) 和

读取了一些数据
 np.genfromtext()

这给了我一个形状为 (5, 1024, 2) 的 3d 数组。本质上是 5 个数组,每个数组有 1024 个坐标对。

我正在做的是将每个 x 坐标移动 21.0 以规范化我的数据,然后我想将其全部写回与以前相同格式的新文件(在我有 5 个单独的坐标对后跟换行符的文件),即

x0 y0 
x1 y1
x2 y2 (this x 1024)

事实证明这比我想象的要难,目前我能做的最好的就是提取每个,在 for 循环中将每个移动 21,然后将它们放回原处,但是当我这样做时,我明白了成为不同的形状 (5, 2, 1024)。我需要将其重塑为 (5, 1024, 2) 但我不明白重塑的工作原理。

如果有人喜欢挑战,我需要将 5 组坐标对中的每一个都写到分隔文件中。

谢谢。

只是回答问题:

你想要的实际上是一个 transposition(即交换两个轴的位置)而不是 reshape。要将 (5,2,1024) 转置为 (5,1024,2),您可以使用以下命令:

a = np.random.rand(5,2,1024)

b = np.transpose(a,[0,2,1])
print(a.shape)
print(b.shape)