python numpy создание логического массива - PullRequest
0 голосов
/ 04 марта 2020

У меня большой массив numpy, и я пытаюсь создать из него логический (1, 0) массив. Например,

a=np.array((2.0,2.0,2.0,3.0,4.0,5.0,6.0,2.0))
a==2.0
array([ True,  True,  True, False, False, False, False,  True], dtype=bool)

Я хочу 1.0 (float / double) для всех 2.0 с в a. a==2.0 дает массив bool, но не 1.0 float. Как я могу это сделать?

Ответы [ 4 ]

1 голос
/ 04 марта 2020
>>> (a == 2).astype(float)
array([1., 1., 1., 0., 0., 0., 0., 1.])
0 голосов
/ 04 марта 2020

Вы можете попробовать это

[1.0 if i else False for i in r]
0 голосов
/ 04 марта 2020

Просто выполните a = float(a), вы также можете использовать numpy для преобразования типа

0 голосов
/ 04 марта 2020

Try

(a==2.0) * 1

Значение True, умноженное на число, будет равно этому числу, а значение False, умноженное на число, будет равно 0

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