numpy loadtxt для 2D-массива - PullRequest
       10

numpy loadtxt для 2D-массива

0 голосов
/ 06 декабря 2018

Я загружал набор данных iris с помощью функции loadtxt из numpy и ожидал, что форма ndarray вернулась к (150,5), но возвращаемая форма получается (150,). Таким образом, очевидно, метод loadtxtсохранение 2D-массива в виде списка строк.Как сделать так, чтобы метод loadtxt возвращал данные в виде 2D-массива. Пожалуйста, не предлагайте панд здесь.

Что ж, это простой фрагмент кода, который я использовал:

import numpy as np


values = np.genfromtxt('iris.txt', delimiter=',',dtype={'names': ('sepal length', 'sepal width', 'petal length', 'petal width', 'label'),
                      'formats': (np.float, np.float, np.float, np.float, 'U15')}, usecols=[0,1,2,3,4])
print(values.shape)

1 Ответ

0 голосов
/ 06 декабря 2018

Посмотрите на loadtxt документы для dtype:

Data-type of the resulting array; default: float.  If this is a
structured data-type, the resulting array will be 1-dimensional, and
each row will be interpreted as an element of the array.  In this
case, the number of columns used must match the number of fields in
the data-type.

Ваш dtype является структурированным типом данных:

dtype={'names': ('sepal length', 'sepal width', 'petal length', 'petal width', 'label'),
       'formats': (np.float, np.float, np.float, np.float, 'U15')}

5 полей, соответствующих 5 значениямв usecols.

Доступ к полям с индексацией имени, например, values['sepal length'], values['label'].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...