Python | Не работает приведение типа
Пытаюсь произвести приведение типа, но оно не работает.
print(type(res))
<class 'numpy.ndarray'>
print(type(res[0][0]))
<class 'numpy.complex128'>
res[0][0] = int(res[0][0].real) - пытаюсь привести тип
print(type(res[0][0]))
<class 'numpy.complex128'> - тип не изменился, почему?
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
метод .real работает с массивом, а не с элементом массива numpy. поэтому в вашем случае корректно было сделать так:
import numpy as np
a = np.zeros((3,3), dtype=np.complex_)
print(type(a))
print(type(a[0][0]))
a = a.real.astype(int)
print(type(a[0][0]))
<class 'numpy.ndarray'>
<class 'numpy.complex128'>
<class 'numpy.int32'>
массивы numpy не поддерживают множественные типы, все элементы должны быть одного типа, и всегда имплицитно приводятся к наиболее "сложному" из имеющихся, если иное не было задано явно.