numpy Ошибка размера массива сборки функции Arange - PullRequest
1 голос
/ 11 января 2020

Когда я использую функцию numpy arange для построения массива numpy, размер не подходит при использовании формы для проверки. Например, если я строю массив: np.arange (-5,6,1), форма будет (11,). Однако, когда я создаю массив: np.arange (-0.001,0.0011,0.0001), форма имеет вид (22,)

Форма находится с помощью np.array.shape

1 Ответ

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

Похоже, что при печати массива вы получаете это -

array([-1.00000000e-03, -9.00000000e-04, -8.00000000e-04, -7.00000000e-04,
       -6.00000000e-04, -5.00000000e-04, -4.00000000e-04, -3.00000000e-04,
       -2.00000000e-04, -1.00000000e-04,  4.33680869e-19,  1.00000000e-04,
        2.00000000e-04,  3.00000000e-04,  4.00000000e-04,  5.00000000e-04,
        6.00000000e-04,  7.00000000e-04,  8.00000000e-04,  9.00000000e-04,
        1.00000000e-03,  1.10000000e-03])

Похоже, что есть некоторые проблемы с округлением, когда -0,001 увеличивается на 0,0001, предложенное значением 4,33680869e-19, когда оно должно быть 0. Это означает, что каждое последующее значение в массиве немного меньше, чем показано. Вот почему последнее значение, 0,0011, включается в массив, когда не должно. Это то, что дает вам несоответствие формы.

Я рекомендую сделать это так, чтобы округление не стало проблемой.

x = np.arange(-10,11,1)
x = x/10000
x.shape # gets (21,)
print(x)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...