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)
所以我发现这很难想象,但基本上我已经使用 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)