Python 如何将文本文件中的值存储到2D 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,代码如下: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,代
'''
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
希望这有帮助