Создание двумерного массива из двоичного файла? - PullRequest
0 голосов
/ 10 апреля 2019

Я использую следующий набор данных, который является двоичным файлом из: 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», и сохранить их в двумерном массиве:

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) массив, т.е. каждую строку из двоичного файла в виде пустой строки и каждый элемент, разделенный запятой в качестве элемента пустой строки.

что я могу сделать здесь, чтобы добиться того же?

1 Ответ

0 голосов
/ 10 апреля 2019

Я скачал файл 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 игнорирует), и может не иметь смысла объединять их все вместе.

...