Как заставить умножение массива numpy scalar * получить результат float64? - PullRequest
1 голос
/ 03 апреля 2020

Предположим, я определил константу dtype float64 и массив из dtype float32:

c = np.arccos(-1)
ones = np.array([1,1,1], dtype='float32')
print(c.dtype, ones.dtype)

float64 float32

Если я умножу скаляр на все массив, я получаю результат с dtype float32:

result_array = c*ones
print(result_array, result_array.dtype)

[3.1415927 3.1415927 3.1415927] float32

Однако, если я умножу скаляр только на первый элемент, я получу результат dtype float64:

result_scalar = c*ones[0]
print(result_scalar, result_scalar.dtype)

3.141592653589793 float64

Как выполнить умножение c*ones с двойной точностью, чтобы полученный массив имел тип dtype float64? (Конечно, без умножения каждого элемента на константу по отдельности.)

(я рассмотрел этот связанный вопрос / ответ, в котором содержится некоторая полезная информация о типе d, полученная в результате Numpy операций скаляра и массива, но не совсем отвечает на мой вопрос: Numpy приведение float32 к float64 )

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