Python 示例中的Numpy转置数据

Python 示例中的Numpy转置数据,python,numpy,multidimensional-array,reshape,Python,Numpy,Multidimensional Array,Reshape,所以我发现这很难可视化,但本质上我已经用numpy(python3.x)和 这给了我一个三维阵列的形状(51022)。基本上是5个数组,每个数组有1024个坐标对 我正在做的是将每个x坐标移动21.0以使我的数据正常化,然后我想以与以前相同的格式将其全部写回一个新文件(之前我有5个单独的坐标对文件,后跟换行符),即 事实证明,这比我想象的要难,目前我能做的最好的事情是提取每个元素,将每个元素在for循环中移位21,然后将其重新组合在一起,但当我这样做时,我得到的是不同的形状(5,2,1024)。

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

这给了我一个三维阵列的形状(51022)。基本上是5个数组,每个数组有1024个坐标对

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

事实证明,这比我想象的要难,目前我能做的最好的事情是提取每个元素,将每个元素在for循环中移位21,然后将其重新组合在一起,但当我这样做时,我得到的是不同的形状(5,2,1024)。我需要将其重新调整为(51022),但我不明白重新调整是如何工作的

如果有人想挑战,那么我需要编写5组坐标对中的每一组来分隔文件


谢谢。

请回答以下问题:

实际上,您需要的是一个换位(即交换两个轴的位置),而不是重塑。要将(5,21024)转换为(51024,2),可以使用以下命令:

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

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

假设
a
是您的数组,将所有x移位21就像
a[:,:,0]+=21一样简单。当你提到使用for循环时,我假设你不是这样做的。如果我的假设是正确的,我强烈建议阅读基本的numpy教程来学习主要的numpy“技巧”。
x0 y0 
x1 y1
x2 y2 (this x 1024)
a = np.random.rand(5,2,1024)

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