2013-05-07 4 views

ответ

3

Если вы хотите выполнить численные операции на множестве данных, numpy будет путь. Вы можете указать произвольные типы записей, объединив базовый numpy dtypes и получить доступ к записям по их именам полей, аналогичным доступу к встроенному словарю Python.

import numpy 
myDtype = numpy.dtype([('name', numpy.str_), ('age', numpy.int32), ('score', numpy.float64)]) 
myData = numpy.empty(10, dtype=myDtype) # Create empty data sets 
print myData['age'] # prints all ages 

Вы даже можете сохранить и повторно загрузить эти данные с помощью tofile и «fromfile` функции в NumPy и продолжать использовать названные поля:

with open('myfile.txt', 'wb') as f: 
    numpy.ndarray.tofile(myData, f) 

with open('myfile.txt', 'rb') as f: 
    loadedData = numpy.fromfile(f, dtype=myDtype) 
    print loadedData['age'] 
1

Python, dictionary может содержать ключи, строки или числа, или даже другие словари, как так:

>>> d = {"name":"foo", "age":22, "props": {"value":2.1}} 
>>> d['props']['value'] 
2.1 

Я предполагаю, что это то, что вы ищете в порт через на основе этой цитаты из сайт, который вы связали с:

Статистика Toolbox ™ имеет массивы массивов данных для хранения переменных с разнородными типами данных . Например, вы можете комбинировать числовые данные, логические данные, массивы ячеек строк и категориальные массивы в одной переменной массива массивов данных .

+0

является MATLAB * набор данных * ключ-значение пара данных? Кажется, что кортеж является более близким, чем словарь. – Praetorian

+0

[Эта страница] (http://www.mathworks.com/help/stats/index-and-search-dataset-arrays.html) показывает использование набора данных, который заставляет меня думать, что словарь лучше подходит, но Я не знаю MATLAB (только маленький Python) –

+0

Вы правы, это похоже на словарь. Я не знаком с этой структурой данных набора данных. – Praetorian

0

Посмотрите на Numpy, это библиотека сторонних разработчиков, в основном используемая для научных вычислений с Python. Также есть страница, содержащая Numpy for Matlab users.

Я думаю, что вы ищете Numpy.array.

3

Вы должны изучить библиотеку pandas, которая смоделирована после кадра данных R.

Не говоря это лучше, чем набор данных MATLAB в

+0

Немного избытка для моих текущих потребностей, но хорошо знать об этом. Похоже, это очень мощный инструмент. – Yair

+0

Это становится важным пакетом как часть стека научных вычислений python (Numpy, Scipy, Matplotlib и т. Д.). Например, [Canopy] (https://www.enthought.com/products/canopy/) (преемник EPD) включает это в свою базовую версию. – Amro

+0

Взял еще один взгляд на это, я думаю, что я начну использовать его - кажется очень полезным – Yair

Смежные вопросы