Numpy ints преобразуются в целые числа Python в массиве numpyPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Numpy ints преобразуются в целые числа Python в массиве numpy

Сообщение Anonymous »

Я пишу код для группировки точек вокруг каждой точки кривой в концентрические области. Затем я нахожу геометрическую медиану каждого региона как способ определения его «формы».
Индексы точек определяются операторами np.where для каждого региона, и все операторы np.where являются помещается в один массив np, чтобы упростить индексацию и обработку, если в регионе нет точек. Этот основной массив dtype также является объектом, поскольку каждая область имеет разное количество точек.
Однако в том редком случае, когда каждая область имеет одинаковое количество точек, структура массива не меняется, но целые числа в каждом массиве np.where изменяются с numpy ints на python int. Это проблема, потому что когда я использую эти значения в качестве индексов, я получаю ошибку индекса:
IndexError: arrays used as indices must be of integer (or boolean) type

Это код, который у меня есть, и то, что я пробовал:
z = np.array([0,0.04,0.8,1.2,1.6,2])

for j in range(1,n1-1): #1 to n1-2, ignoring the initial and final parts
print(j)

r_a = j_r[j-1,0] r_b = j_r[j-1,1]

dist_a = s_dist[j][:j]
dist_b = s_dist[j][j+1:]

dist_pt_a = np.array([np.where((dist_a = r_a*z[0]))[0], #a: r1
np.where((dist_a = r_a*z[1]))[0], #a: r2
np.where((dist_a = r_a*z[2]))[0], #a: r3
np.where((dist_a = r_a*z[3]))[0], #a: r4
np.where((dist_a = r_a*z[4]))[0]], dtype=object) #a: r5

dist_pt_b = np.array([np.where((dist_b = r_b*z[0]))[0] + (j+1), #b: r1
np.where((dist_b = r_b*z[1]))[0] + (j+1), #b: r2
np.where((dist_b = r_b*z[2]))[0] + (j+1), #b: r3
np.where((dist_b = r_b*z[3]))[0] + (j+1), #b: r4
np.where((dist_b = r_b*z[4]))[0] + (j+1)], dtype=object) #b: r5

#What's happening:
#THE GOOD
#the array with 5 regions, each of differing length
dist_pt_b: [array([1081, 1082, 1083], dtype=int64)
array([1084, 1085, 1086], dtype=int64)
array([1087, 1088], dtype=int64)
array([1089, 1090, 1091, 1092], dtype=int64)
array([1093, 1094, 1095], dtype=int64)]
#the first region
r (0): [1081 1082 1083],
#the first index in the first region
r (0): 1081,
#is indexable to that cartesian point
r (0): [[ 0.96494 23.29605851][ 0.97084 23.29796217][ 0.98314 23.30293551]]

#THE BAD
#массив из 5 областей одинаковой длины
dist_pt_b: [[1082 1083 1084][1085 1086 1087][1088 1089 1090][1091 1092 1093][1094 1095 1096]]
#the first region
r (0): [1082 1083 1084],
#the first index in the first region
r (0): 1082,

#INDEX ERROR

127 print(f'r ({r}): {dist_pt_b[r]}, {type(dist_pt_b[r])}')
128 print(f'r ({r}): {dist_pt_b[r][0]}, {type(dist_pt_b[r][0])}')
--> 129 print(f'r ({r}): {s_n[dist_pt_b[r]]}')
130 dist_pt_b[r] = np.mean(s_n[dist_pt_b[r]], axis = 0)
131 theta_s_b[2r], theta_s_b[2r+1] = dist_pt_b[r]
IndexError: arrays used as indices must be of integer (or boolean) type


Подробнее здесь: https://stackoverflow.com/questions/793 ... umpy-array
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Гсон. Десериализовать целые числа как целые числа, а не как двойные числа.
    Anonymous » » в форуме JAVA
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • Целые числа напрямую преобразуются в символы Ascii при отладке
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Основы функции - Function Function Function, пройдя в INTS больше 99
    Anonymous » » в форуме Python
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Discord ints.message_content
    Anonymous » » в форуме Python
    0 Ответы
    3 Просмотры
    Последнее сообщение Anonymous
  • JavaScript: преобразование 52-битного целого числа в 20-битные и 32-битные целые числа
    Гость » » в форуме Javascript
    0 Ответы
    169 Просмотры
    Последнее сообщение Гость

Вернуться в «Python»