【问题标题】:Numpy transpose data in example示例中的 Numpy 转置数据
【发布时间】:2017-01-13 17:26:09
【问题描述】:

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

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

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

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

x0 y0 
x1 y1
x2 y2 (this x 1024)

事实证明这比我想象的要难,目前我能做到的最好是提取每个,在 for 循环中将每个移动 21 并将它们重新组合在一起,但是当我这样做时,我得到了它形状 (5, 2, 1024) 不一样。我需要将其重塑为 (5, 1024, 2) 但我不明白重塑的工作原理。

如果有人喜欢挑战,那么我需要将 5 组坐标对中的每组都写出来以分隔文件。

谢谢。

【问题讨论】:

  • a 是你的数组,将所有 x 移动 21 就像 a[:,:,0]+=21 一样简单。正如您提到的使用 for 循环,我认为这不是您这样做的方式。如果我的假设是正确的,我强烈建议阅读基本的 numpy 教程来学习主要的 numpy “技巧”。

标签: python numpy multidimensional-array reshape


【解决方案1】:

只是为了回答这个问题:

你想要的实际上是转置(即交换两个轴的位置)而不是重塑。要将 (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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    • 2019-12-15
    • 1970-01-01
    • 2011-08-22
    相关资源
    最近更新 更多