#python #numpy
#python #numpy
Вопрос:
Чтобы проверить, верны ли мои предположения о расположении памяти, мне иногда хотелось бы печатать элементы an ndarray
точно в порядке хранения в памяти.
Я знаю flatten
, ravel
, flat
, flatiter
но я все еще не уверен, какая функция действительно будет отражать порядок памяти?
Комментарии:
1. Если вас волнуют такие вещи, почему вы используете Python?
2. Так что, может быть, потому, что у меня есть / планирую использовать привязку C? Потому что мне просто интересно, что происходит под капотом?
Ответ №1:
Вероятно ravel
, это будет соответствовать вашим потребностям, если вы используете эту order='K'
опцию. Из документов:
порядок: {‘C’,’F’, ‘A’, ‘K’}, необязательно
[…] ‘K’ означает чтение элементов в том порядке, в котором они встречаются в памяти, за исключением изменения данных, когда шаги отрицательны.[…]
Если вы просто хотите узнать больше о расположении массива в памяти без печати всех элементов, вы можете посмотреть его strides
атрибут.
Комментарии:
1.
flatten
также принимаетorder
параметр. Ноravel
используется чаще.