2014-01-28 2 views
2

Об этом было задано несколько раз (here и here). По-видимому, функция была перемещена в numpy 1.6.1. Больше нет numpy.lib.recfunctions. Хотя я могу реализовать свои собственные, как указано в предыдущих сообщениях, я бы действительно скорее нет!Добавление поля в структурированный массив numpy (3)

Может ли кто-нибудь сказать мне путь к этой функции? recfunctions в целом был перемещен или объединен в другую библиотеку?

ответ

3

Согласно git history, numpy.lib.recfunctions никуда не делся.

Я бы проверил вашу установку numpy и, возможно, обновил ее до более новой версии.

+0

в порядке. Спасибо за это. Я нашел библиотеку и функцию, поэтому я думаю, что у меня есть что-то напуганное с моей конфигурацией. Отчитается. – Roland

+0

столкнулся с этой проблемой, используя linux/conda в новой системе. Пришлось добавить вызов 'import numpy.lib.recfunctions' вверху. – pyCthon

1

Это работает для меня ... но я не понимаю, почему. Может быть, кто-то может объяснить:

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import numpy 
>>> numpy.__version__ 
'1.6.1' 
>>> numpy.lib 
<module 'numpy.lib' from 'C:\Python27\ArcGIS10.1\lib\site-packages\numpy\lib\__init__.pyc'> 
>>> numpy.lib.recfunctions #### <- why does this not work? 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'recfunctions' 
>>> import numpy.lib.recfunctions 
>>> dir(numpy.lib.recfunctions) 
['MaskedArray', 'MaskedRecords', '__all__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '_check_fill_value', '_fix_defaults', '_fix_output','_is_string_like', '_izip_fields', '_izip_fields_flat', 'append_fields', 'drop_fields', 'find_duplicates', 'flatten_descr', 'get_fieldstructure', 'get_names', 'get_names_flat', 'itertools', 'izip_records', 'join_by', 'ma', 'merge_arrays', 'ndarray', 'np', 'rec_append_fields', 'rec_drop_fields', 'rec_join', 'recarray', 'recursive_fill_fields', 'rename_fields', 'stack_arrays', 'sys', 'zip_descr'] 
>>> 
+0

Это интересно. Явно использую 'import numpy.lib.recfunctions', работает и для меня. По крайней мере, это обходной путь. Все еще хотелось бы знать, почему я не могу перейти к «рефайнам» с нормальным «import numpy»; метод numpy.lib.recfunctions. – Roland

+1

зарегистрировал проблему с numpy людьми: https://github.com/numpy/numpy/issues/4242 – Roland

0

Я обнаружил, что для добавления массива в массив записей, используйте MLAB recfunctions в порядке, но Numpy recfunctions НЕ ОК.

import matplotlib.mlab as mlab 
mlab.rec_append_fields(recarray, names, data) 
Смежные вопросы