Ответ 1
Краткая версия
dataset
является dict
. Для dict
вы получаете доступ к значениям, используя нотацию индексации python, dataset[key]
, где key
может быть строкой, целым числом, float, кортежем или любым другим неизменяемым типом данных (это немного сложнее, чем это, ниже, если вы заинтересованы).
В вашем случае ключ находится в форме строки. Чтобы получить доступ к нему, вам нужно указать строку, которую вы хотите как индекс, например:
import arff
import numpy as np
dataset = arff.load(open('mydataset.arff', 'rb'))
data = np.array(dataset['data'])
(вы также не должны помещать импорт в одну строку, хотя это просто проблема чтения)
Более подробное объяснение
dataset
- это dict
, который на некоторых языках называется map
или hashtable
. В dict
вы получаете доступ к значениям аналогично тому, как вы индексируете в списке или массиве, за исключением того, что "индекс" может быть любым типом данных, который является "хешируемым" (который, в идеале, является уникальным идентификатором для каждого возможного стоимость). Этот "индекс" называется "ключом". На практике, по крайней мере, для встроенных типов и большинства основных пакетов используются только неизменные типы данных или хешируемые, но нет фактического правила, которое требует, чтобы это имело место.
Вы пришли из MATLAB
? Если да, то вы, вероятно, пытаетесь использовать технику доступа MATLAB's
struct
. Вы могли бы подумать о dict
как о гораздо более быстром и гибком struct
, но синтаксис для доступа к значениям отличается.