Форум сайта python.su
0
столкнулся со следующей, проблемой непонятного происхождения. Оператор write записывая в файл массив размером более 1024 строк, пишет только 1024 строки, остальные просто отбрасывая. Вот в этом коде проявляется проблема
#!/usr/bin/python
import sys
import scitools.filetable as ftable
...
b0n=b0[:,0:9]
fb0n=open(file_name+".raw",'w')
ftable.write(fb0n,b0n)
fb0n.close()
Офлайн
0
удалось записать с numpy.savetxt(file_name+“.raw”,b0n).
но вопрос : где я неправильно использую ftable.write() остается?
Офлайн
10
Однако…
Попробовал воспроизвести - у меня записывает и более 1024 строк..
Офлайн
0
Миллион строк - полёт нормальный.
Офлайн
32
b0n=b0[:,0:9]
Офлайн
14
А почему нет? Слайсинг внутри квадратных скобок — валидная операция.
Офлайн
32
Андрей СветловКакой-то не обычный слайсинг - через запятую, двойной что ли?
А почему нет? Слайсинг внутри квадратных скобок — валидная операция.
Офлайн
14
>>> class A(object):
... def __getitem__(self, a):
... print a
...
...
...
>>> a = A()
>>> a[1]
1
>>> a[1:1]
slice(1, 1, None)
>>> a[1:1, 2:2]
(slice(1, 1, None), slice(2, 2, None))
>>>
Офлайн
0
o7412369815963Так это массив в numpy, там и больше запятых может быть.
Какой-то не обычный слайсинг - через запятую, двойной что ли?
>>> from numpy import *
>>> a = arange(5*5*5*3)
>>> a.shape = (5,5,5,3)
>>> a[4,:,1,2]
array([305, 320, 335, 350, 365])
>>> a[0,0,...]
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]])
Офлайн
32
Спасибо за примеры, не знал, но догадывался. :)
Офлайн