Что такое fixed-size arrays of doubles в контексте numpy?
Встретил фразу With numpy.array, you can create fixed-size arrays of doubles.
Что значит fixed-size array of doubles в контексте numpy?
Ответы (3 шт):
"fixed-size arrays of doubles" переводится на русский язык буквально как
"массивы фиксированного размера из вещественных чисел".
"double" - основной тип для вычислений с вещественными или дробными величинами.
Странное название имеет исторические корни, и это история языка C. Изначально основным типом для вычислений в C был "float" – "число с плавающей запятой одинарной точности". Он занимает 32 бита. Тип "double" означает "число с плавающей запятой двойной точности". Он занимает 64 бита и примерно в два раза точнее чем "float". С удешевлением процессоров и памяти "double" стал использоваться чаще. И теперь мы работаем с "двойными" числами там, где раньше работали с "плавающими".
Авторы Питона запутали терминологию ещё больше. В Питоне тип "вещественное число одинарной точности" не доступен непосредственно, все вычисления делаются в двойной точности, которая обозначается типом float. Когда питонист говорит float он имеет в виду double.
А в NumPy доступны оба типа: numpy.float32 или numpy.single для одинарной точности. И numpy.double или numpy.float64 для двойной.
double - это Число двойной точности. То есть дробное число, занимающее 8 байт, причем 1 бит обозначает знак, следующие 11 битов - порядок числа, а остальные 52 бита - мантиссу.
array - массив. Массив состоит из какого-то количества элементов, и к каждому из них можно обратиться по индексу.
fixed-size array - массив, у которого количество элементов не может изменяться (элементы нельзя добавлять или удалять).
fixed-size array of doubles - Массив, все элементы которого - числа с плавающей запятой двойной точности, к каждому из которых можно обратиться по индексу, и количество которых фиксированно.
Пример на C++:
#include <iostream>
using namespace std;
int main(){
double arrayOfDoubles[100] = {0}; // Создание массива
cout << arrayOfDoubles[0]; // Получение первого элемента
cin >> arrayOfDoubles[0]; // Изменение первого элемента
}
В контексте numpy выражение "fixed-size array of doubles" означает:
Fixed-size (фиксированный размер):
В отличие от списков Python (list), массивы numpy.array имеют фиксированное количество элементов. После создания массива его размер (shape) нельзя изменить (но можно создать новый массив с другим размером, например, с помощью .reshape() или np.concatenate()).
Array of doubles (массив чисел с двойной точностью):
numpy хранит данные в массиве как элементы одного типа (в отличие от списков Python, которые могут содержать элементы разных типов). "Doubles" обычно означает числа с двойной точностью (64-битный float). В numpy это соответствует типу float64.