Python 如何将文本文件中的值存储到2D Numpy数组中?

Python 如何将文本文件中的值存储到2D Numpy数组中?,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,我在一个txt文件中有一个数据集,有373行3列。我的老师让我创建2个数组。“array1”存储数据集中第三列值为1的所有行,“array2”存储第2列的每一行。数组必须是numpy数组。 我尝试了'class1=np.zeros(len(dataset)).reforme(len(dataset)//3,3'),但得到了错误消息: 'ValueError:无法将大小为373的数组重塑为形状(124,3)' 我尝试了各种各样的变化。但是我找不到让2D工作的方法。我只在两个数组上存储了列编号1,代

我在一个txt文件中有一个数据集,有373行3列。我的老师让我创建2个数组。“array1”存储数据集中第三列值为1的所有行,“array2”存储第2列的每一行。数组必须是numpy数组。 我尝试了'class1=np.zeros(len(dataset)).reforme(len(dataset)//3,3'),但得到了错误消息: 'ValueError:无法将大小为373的数组重塑为形状(124,3)' 我尝试了各种各样的变化。但是我找不到让2D工作的方法。我只在两个数组上存储了列编号1,代码如下:

'''
import numpy as np

dataset = np.loadtxt("first_attempt_dataset.txt")

class1 = np.zeros(len(dataset))
class2 = np.zeros(len(dataset))


for i in range(0,len(dataset)): 
  if dataset[i,2] == 1:  
    class1[i] = dataset[i][1]
  elif dataset[i,2] == 2:
    class2[i] = dataset[i][1]


class1 = class1[class1 != 0]  #delete the remained zeros from declaration
class2 = class2[class2 != 0]  

'''

我怎样才能存储每一列而不是一列呢?

我觉得你误解了老师的问题。问题是“…array1”存储数据集中第三列值为1的所有行,…”,因此我会这样做:

import numpy as np

a = np.array([[1,2,3], [3,2,1], [2,3,1], [2,1,3], [3,1,2]])
b = a[a[:,2]==1]
print(b)
结果是:

[[3 2 1]
 [2 3 1]]
与问题的后半部分类似,您需要将列号更改为
1

希望这有帮助