Предупреждение об устаревании Python с использованием чисел с плавающей точкой и целых чисел - PullRequest
0 голосов
/ 04 июня 2018

Я хочу выделить небольшую часть большого массива и найти среднее значение этого подмножества.Я пытался указать целые числа при определении подмножества:

import numpy as np

x = np.linspace(-10,10,1e6) # whole dataset

x0 = x[int(len(x)//2-5):int(len(x)//2+5)] # subset
print(x0)
xm = np.mean(x0) # average value of data subset
print(xm)

, но мой код выдает предупреждение об устаревании, которое говорит:

DeprecationWarning: object of type <class 'float'> cannot be safely interpreted as an integer.
  x = np.linspace(-10,10,1e6)

Есть ли лучший способ вычисления среднего значенияподмножество данных?Что мне делать с этим предупреждением, и оно станет проблемой в новых версиях Python?Я использую Spyder 3.2.8.

1 Ответ

0 голосов
/ 04 июня 2018

Проблема в том, что np.linspace ожидает количество очков, которое он должен получить в качестве третьего аргумента.Таким образом, это должно быть целое число (целое число).Однако 1e6 анализируется как число с плавающей точкой, поэтому необходимо преобразовать в целое число, а значит, и предупреждение.

Решение состоит в том, чтобы записать 1e6 как целое число, , то есть 1000000.Если вы используете Python 3, вы можете написать 1_000_000 вместо этого, чтобы сделать число более читабельным.

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