Каково влияние выполнения менее чем сравнения между матрицей (2D-массивом) и значением в Python? - PullRequest
0 голосов
/ 19 мая 2019

Я не понимаю, почему я получил матрицу значений bool при установке матрицы <значение в Python </p>

a3 имеет 12 элементов и 12 * 0,8 = 9,6. Как может остаться 9.6 элементов? Где моя ошибка?

Мой код:

import numpy as np

keep_prod = 0.8
a3 = np.random.rand(3,4)
print("a3-before",a3)
d3 = np.random.rand(a3.shape[0],a3.shape[1])<keep_prod    ##### attention!!!
print("d3",d3)

Выход:

a3-before 
[[ 0.6016695   0.733025    0.38694513  0.17916196]
 [ 0.39412193  0.22803599  0.16931667  0.30190426]
 [ 0.8822327   0.64064634  0.40085393  0.72317028]]
d3 
[[False  True  True False]
 [ True False  True  True]
 [ True  True  True  True]]

1 Ответ

0 голосов
/ 19 мая 2019

Похоже, вы ожидаете, что < 0.8 сохранит 80% элементов в исходном массиве.

Однако на самом деле происходит то, что он выполняет это сравнение поэлементно и возвращает массив той же формы. Другими словами, d3 содержит True, где соответствующий элемент a3 был больше или равен 0.8, а False в другом месте.

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