Python 从行上的数据创建numpy数组

Python 从行上的数据创建numpy数组,python,numpy-ndarray,Python,Numpy Ndarray,我的数据文件每行有一个示例。 每行是400个浮点数。这是一个20x20的图像在一条线上。 我必须编写一个带有维度的numpy数组(行数,20,20,1)。 最后一个维度是值(文件中的浮点数) 我试过这样的方法: X1=[] for x in range (1,nrow+1): for a in range (1,21): for b in range (1,21): index = a*b-1 X1.append((x,a,b,

我的数据文件每行有一个示例。 每行是400个浮点数。这是一个20x20的图像在一条线上。 我必须编写一个带有维度的numpy数组(行数,20,20,1)。 最后一个维度是值(文件中的浮点数)

我试过这样的方法:

X1=[]
for x in range (1,nrow+1):
    for a in range (1,21):
        for b in range (1,21):
           index = a*b-1
           X1.append((x,a,b,X[x,index]))
X = np.array(X1)
但我知道这是错误的

编辑:

也许这就是解决方案:

X1=[]
for x in range (1,Nsamples+1):
    for a in range (1,21):
        for b in range (1,21):
           index = a*b-1
           X1.append((X[x,index]))
           #X1.append((X[x,index], x))
X = np.array(X1)
X = X.reshape(Nsamples,20,20,1)
尝试使用“重塑”

X = X.reshape(X.shape[0],20,20,1)

它将为您提供一组具有相同行数的重塑图像,这似乎是正确的答案,感谢帮助您的人

X1=[]
for x in range (1,Nsamples+1):
    for a in range (1,21):
        for b in range (1,21):
           index = a*b-1
           X1.append((X[x,index]))
X = np.array(X1)
X = X.reshape(Nsamples,20,20,1)

如果你知道这是错误的?你为什么这么想?请提供运行代码时遇到的任何异常?还有什么是nRow我知道这是错误的,因为对于一行,X数组的形状是(400,4),我想得到(1,20,20,1)。nrow是文件中的行数。每行是400个浮点数。所以
nrow=400
?不。对不起,我是初学者。nrow不是固定的。目前仅用于测试的是1,每行有400个浮点数,应该放在20x20矩阵中。如果维度必须包含“行数”,这意味着维度是可变的,因为有20行,每行有不同的数字。所以我不清楚你的真实意图是什么。也许应该是“行数”?ValueError:无法将大小为1600的数组重塑为形状(400,20,20,1)。X.shape[0]是400什么是X.shape?X.shape是(400,4),因此我无法将其重塑为(1,20,20,1)您的400个浮点值在一列中而不是在一行中