Учитывая это ДИКТ из numpy.ndarray
:Python: Применение порога к Numpy массива
d={0: np.array([[ 9.81650352, 10.03896523, 10.26972675], [11.76386738,
11.76718712, 11.63769531]]),
1: np.array([[ 13.33630352, 29.17866523, 17.1005102675], [41.98976738,
6.44368712, 2.11764771]])}
А следующий порог:
t=10
Я хочу, чтобы новый Dict с 1
, если каждое значение с плавающей точкой в d - >=t
, и 0
если <t
. Моя попытка
newd={k:[[1]] or [[0]] for k,[[v]] in d if [[v]]>=t}
возвращается:
Traceback (most recent call last):
File "<ipython-input-152-68383ed9ad79>", line 1, in <module>
newd={k:[[1]] or [[0]] for k,[[v]] in d if [[v]]>=17}
File "<ipython-input-152-68383ed9ad79>", line 1, in <dictcomp>
newd={k:[[1]] or [[0]] for k,[[v]] in d if [[v]]>=17}
TypeError: 'int' object is not iterable
Как я должен "вносят изменения" мой сниппет?
Ожидаемый результат будет, в этом примере:
newd={0: np.array([[ 0, 1, 1], [1, 1, 1]]),
1: np.array([[ 1, 1, 1], [1, 0, 0]])}
Выглядит сложно, но для начала я предлагаю использовать 'd.items'. Прямо сейчас вы только итерации по клавишам. – Kevin
Где находится 'array()'? – MackM
Конечно, 'array()' является 'np.ndarray'. Мой плохой ... – FaCoffee