Как преобразовать подмножество numpy recarray в непрерывный массив?

У меня есть recarray которое происходит от чтения файла csv. Меня интересует преобразование подмножества столбцов в непрерывный массив с плавающей точкой. Я бы хотел, чтобы они не конвертировали их, чтобы перечислить или уложить их по одному. Я пробовал предложения в https://stackoverflow.com/a/11792956 и https://stackoverflow.com/a/7842620, но я получаю

ValueError: новый тип, не совместимый с массивом.

Вот мой код:

 a = np.recfromcsv(r"myfile.csv") #a has many columns of type int, float or string. I want to extract those called coeff* coeffs_columns = [n for n in a.dtype.names if n.startswith('coeff')] coeffs_recarray = a[coeffs_columns] newtype=[(n,'<f8') for n in coeffs_columns] b = coeffs_recarray.astype(newtype) #b is: #array((0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0), dtype=[('coefficients00', '<f8'), ('coefficients1', '<f8'), ('coefficients2', '<f8'), ('coefficients3', '<f8'), ('coefficients4', '<f8'), ('coefficients5', '<f8'), ('coefficients6', '<f8'), ('coefficients7', '<f8'), ('coefficients8', '<f8'), ('coefficients9', '<f8'), ('coefficients100', '<f8'), ('coefficients11', '<f8'), ('coefficients12', '<f8'), ('coefficients13', '<f8'), ('coefficients14', '<f8')]) coeffs = b.view('<f8') 

«Смешно» состоит в том, что если я извлекаю только один столбец, или если я работаю с recarray созданным как

 x = np.array([(1.0, 2,7.0), (3.0, 4, 9.9)], dtype=[('x', '<f8'), ('y', '<f8'), ('z', '<f8')]) 

конверсия работает.

One Solution collect form web for “Как преобразовать подмножество numpy recarray в непрерывный массив?”

Numpy предоставляет numpy.ascontiguousarray .

Эта функция возвращает смежный массив в памяти (порядок C) его входного массива. Это особенно полезно при работе с несмежными видами массивов.

Если требуется заказ Fortran, используйте numpy.asfortranarray .

  • Передача структурированного массива numpy со строками в функцию cython
  • Добавление поля в структурированный массив numpy (2)
  • Выберите строки из Numpy Rec Array
  • Нормализовать / стандартизировать повторение numpy
  • Доступ к повторной записи Numpy через C-API
  • Python - лучший язык программирования в мире.