2016-12-06 8 views
0

Я работаю со структурированным массивом определенной таким образом:заселение структурированный массив бросает «ndarray не C-смежный» ошибка

scores = np.empty((num_of_imgs, 4), 
           dtype=[('id', 'u4'), ('bestT', 'u8'), ('bestR', 'f8'), ('bestP', 'f8')]) 

затем в цикле я заполнить его:

scores[i] = [id, bestT, bestR, bestP] 

где все вары внутри списка представляют собой массивы numpy с формой (1,). Однако эта строка кода выдает указанную выше ошибку. Зачем?

+0

Вы пробовали "оценки [я ,:] = [идентификатор, bestT, BestR, bestP]"? – Balzola

+0

Ошибка по-прежнему сохраняется. – AreTor

ответ

4
  1. Ваше scores назначение делает NX4 массив 4-кортежей, которая представляет собой дополнительный размер больше, чем вы хотите, я думаю. Он должен быть

    scores = np.empty(num_of_imgs, 
        dtype=[('id', 'u4'), ('bestT', 'u8'), ('bestR', 'f8'), ('bestP', 'f8')]) 
    
  2. Затем вы пытаетесь присвоить список кортеж, который бросает свой с-смежная ошибку (NumPy не является полезной при преобразовании типов структурированных массивов как для ndarrays). Сделайте назначение кортежем. (С использованием () вместо [])

    scores[i] = (id, bestT, bestR, bestP) 
    
+0

Благодарим вас за ответ, код работает сейчас. – AreTor

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

  • Нет связанных вопросов^_^