Как убрать скобки из массива python? - PullRequest
1 голос
/ 28 января 2020

У меня есть такой массив:

>>>Opt
array([[array([[0.5]])]], dtype=object)

Как убрать эти скобки и получить значение 0,5 в виде одной плавающей запятой?

Я пробовал

>>>np.array(Opt)
array([[array([[0.5]])]], dtype=object)
>>>Opt.ravel()
array([[array([[0.5]])]], dtype=object)
>>>Opt.flatten()
array([[array([[0.5]])]], dtype=object)

Ни одна из этих работ. Это из-за типа данных "объект"?

Ответы [ 2 ]

1 голос
/ 28 января 2020

Это 4-мерный массив numpy, который вы определили, поэтому в данном случае для базового c способа получить число вам нужно перемещаться по четырем измерениям:

import numpy as np

the_array = np.array([[np.array([[0.5]])]], dtype=object)
print(the_array[0][0][0][0])

Вывод:

0.5

Я не знаю, что вы хотите сделать с этим массивом, в зависимости от вашего варианта использования могут быть более эффективные подходы к вашей проблеме.

dtype = object означает, что вы определили массив указателей для Python объектов, это определяет как управление памятью при выделении пространства для массива, так и разрешенные операции над элементами.

0 голосов
/ 29 января 2020

Я выяснил, что лучший способ сделать это - использовать item ().

Opt.item().item()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...