Так как bsr_matrix
представляет собой разреженную матрицу блока, вы не можете изменять ее элементы по индексу. Возможно, вы искали что-то вроде csr_matrix
? При этом, обращая внимание на предупреждение, которое оно производит, вы можете делать то, что вы пытаетесь сделать:
In [192]: M = sparse.csr_matrix((N, N), dtype=np.complex)
In [193]: M[0, 0] = np.complex(1, 1)
C:\Users\\AppData\Local\Continuum\Anaconda3\lib\site-packages\scipy\sparse\compressed.py:742: SparseEfficiencyWarning: Changing the sparsity structure of a csr_matrix is expensive. lil_matrix is more efficient.
SparseEfficiencyWarning)
In [194]: print(M)
(0, 0) (1+1j)
Используйте stat -s
. Он печатает поля в том же порядке, но с метками (и без имени файла):
:; stat -s /etc/man.conf | fmt
st_dev=16777220 st_ino=641593 st_mode=0100644 st_nlink=1 st_uid=0
st_gid=0 st_rdev=0 st_size=4574 st_atime=1547885737 st_mtime=1500152545
st_ctime=1512806119 st_birthtime=1500152545 st_blksize=4194304
st_blocks=0 st_flags=32
Ваше первое загадочное поле - st_rdev
, «тип устройства, для специального файлового индекса». Поскольку мы не регистрируем файл устройства, это ноль.
Ваше второе загадочное поле - st_birthtimespec
, «время создания файла (рождения)» (см. Справочную страницу stat(2)
). Это дарвинское 64-битное расширение.
Ваш 4096 не размер файла в байтах. Это st_blksize
, «оптимальный размер блока для ввода / вывода». В моем примере это 4194304. Возможно, ваш файл находится в файловой системе HFS +. Мой находится в файловой системе APFS.
Ваше третье загадочное поле - st_flags
, «пользовательские флаги для файла». У тебя ноль, поэтому флаги не установлены. В моем примере (/etc/man.conf
) установлено UF_COMPRESSED
.
В чем разница между st_dev и st_rdev?
blockquote>Поле
st_dev
относится к устройству (жесткий диск / раздел / что угодно), содержащему файл. Полеst_rdev
для файлов устройств сообщает ядру, какое устройство представляет сам файл. Попробуйте запуститьstat
для некоторых файлов устройств в/dev
, например,/dev/null
и/dev/rdisk0
, чтобы увидеть ненулевые значенияst_rdev
.Многие, я не нашел правильную страницу руководства (ни man stat, ни man lstat). Есть ли официальная документация, которая подробно объясняет каждое поле статистики? Где я могу его найти?
blockquote>Используйте
man 1 stat
, чтобы узнать о флагах программы командной строкиstat
, например, о флаге-s
, который я использовал. Затем используйтеman 2 stat
и ваш любимый поисковик, чтобы узнать, что означают поля.