Вы, вероятно, можете попробовать это
import os
fileinfo = os.stats('1darray.npy')
длина массива
a = os.stat('1darray.npy')
int((a.st_size - 128)/itemsize)
128 - это файл npy дополнительного размера, который сохраняется при сохранении в каталоге в ОС,фактический размер любого байтового массива в байтах можно найти в виде array.nbytes.Так a.st_size - 128 = array.nbytes
и array.bytes/array.itemsize = array.size = array lenght
Где itemsize = 2
, если массив имеет тип float 16
бит, 4
, если тип является плавающим 32
бит, и 8
, если массив, если тип float 64
bit
Вот демонстрационная версия
import numpy as np
import os
array = np.arange(12, dtype=np.float64)
print(a.itemsize) # >> gives 8 for float 64 bit
np.save('1darray.npy', array)
a = os.stat('1darray.npy')
length = int((a.st_size - 128)/8) # >> gives 12 which is equal to array.size
, поэтому вы должны знать, что такое dtype
сохраненных numpy npy
файлов
Поэтому для вашего случаяВы можете сделать это
lengths = [(os.stat(whatever).st_size - 128)/8 for whatever in os.listdir(some_dir)]
, предполагая, что dtypes массивов npy равен float64