Что касается эффективности, как мы можем создать большой массив numpy, где значения являются числами с плавающей запятой в заданном диапазоне c.
Например, для массива 1-D numpy фиксированного размера, где значения находятся в диапазоне от 0 до 200 000 000,00 (т. е. значения в [0, 200 000 000,00]), я могу создать массив, используя наименьший тип данных для чисел с плавающей запятой (float16
), а затем проверить любое новое значение (из пользовательского ввода) перед вставкой его в массив:
import numpy as np
a = np.empty(shape=(1000,), dtype=np.float16))
pos = 0
new_value = input('Enter new value: ')
# validate
new_value = round(new_value, 2)
if new_value in np.arange(0.00, 200000000.00, 0.01):
# fill in new value
a[pos] = new_value
pos = pos + 1
Вопрос в том, можем ли мы принудительно установить валидность new_value
(с точки зрения уже известных минимальных / максимальных значений и количества десятичных знаков) на основе dtype
из массива?
Другими словами, тот факт, что мы знаем диапазон и количество десятичных знаков во время создания массива, дает ли это нам какую-либо возможность (более) эффективно вставить действительные значения в массив?