我正在使用以下数据集,该数据集是来自http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data
的二进制文件数据如下:
1350423,5,10,10,8,5,5,7,10,1,4
1352848,3,10,7,8,5,8,7,4,1,4
1353092,3,2,1,2,2,1,3,1,1,2
1354840,2,1,1,1,2,1,3,1,1,2
1354840,5,3,2,1,3,1,1,1,1,2
1355260,1,1,1,1,2,1,2,1,1,2
1365075,4,1,4,1,2,1,1,1,1,2
1365328,1,1,2,1,2,1,2,1,1,2
1368267,5,1,1,1,2,1,1,1,1,2
1368273,1,1,1,1,2,1,1,1,1,2
1368882,2,1,1,1,2,1,1,1,1,2
二进制文件有699行。
然后我使用下面的代码从保存为'sample.data'的二进制文件中获取数据,并将其保存在2D numpy数组中:
import numpy as np
def main():
dtype = np.dtype('i8')
b = np.fromfile('sample.data', dtype=dtype)
ndata = np.array(b)
print(ndata.shape)
main()
我正在寻找一个(699,11)数组,即二进制文件中的每一行都为numpy行,而每个元素之间以逗号分隔为numpy行的元素。
在这里我可以做什么以达到相同的目的?
答案 0 :(得分:0)
我下载了文件http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/unformatted-data,然后执行了以下操作:
ndata = np.genfromtxt('unformatted-data', skip_header=16, delimiter=',')
数组ndata
的形状为(699,11)。
请注意,因为其中存在各种数据组(文件中有numpy
正在忽略的注释),将它们全部合并在一起可能没有意义。