Почему массив numpy не меняет float на int? - PullRequest
0 голосов
/ 15 января 2020

enter image description here

[row, col] = org_I.shape
[row, col] = np.array([row, col], dtype=np.int)/2
m = np.zeros((row,col))

Я хочу получить матрицу [row/2, col/2], так и сделал. Однако произошла ошибка, когда я делаю матрицу нулей, используя [row, col].

Помогите мне, пожалуйста.

Ответы [ 2 ]

0 голосов
/ 15 января 2020

Поскольку row и col изначально были ints, разделив их на 2 в следующем коде

[row, col] = np.array([row, col], dtype=np.int)/2

* row и val теперь стали числами с десятичным числом .5 из-за деления.

Вы можете решить проблему, удалив десятичное число (целочисленное деление):

[row, col] = np.array([row, col], dtype=np.int)//2

Обратите внимание, что вместо /

было использовано //
0 голосов
/ 15 января 2020

Деление на 2 преобразует массив обратно в dtype = np.float64. Вместо этого используйте целочисленное деление:

np.array([row, col]) // 2

Вам даже не нужно указывать dtype массива, поскольку row и col являются результатом .shape и будут целыми числами.

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