np.power (возведенная в степень 2) матрицы не приводит к элементам ^ 2 - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь выровнять элементы матрицы m в python, используя m ** 2 или np.power (m ** 2). В результате некоторые элементы возводятся в квадрат, тогда как некоторые не являются

К сожалению, я не могу воспроизвести проблему в тестовом случае, и матрица велика, но создание снимка, показывающего части первой и последних нескольких строк, поможет выделить проблему

введите описание изображения здесь

Кажется, что некоторые элементы разложены или что-то в этом роде? Буду признателен, если кто-нибудь сможет объяснить мне это поведение.

Ответы [ 2 ]

0 голосов
/ 26 апреля 2018

Элементы вашего np.array действительно квадратные.

Тип вашего массива: uint8, что делает все арифметические операции по модулю 256.

>>> 252 ** 2 % 256
16
0 голосов
/ 26 апреля 2018

Элемент в вашей матрице имеет тип 8-битное целое число без знака (uint8), что означает, что они ограничены между 0 и 255. Так что (252**2) % 256 = 16

Вы можете изменить тип массива, используя:

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