Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 8, 2010 15:17:16

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

у меня есть текстовый файл измерений параметров ветра в котором содержится слудующая информация:
00:00:25 309.0 1.5
00:00:55 209.0 2.7
00:01:25 115.0 3.5
00:01:55 39.0 1.2
00:02:25 56.0 3.5
00:02:55 108.0 1.9
00:03:25 270.0 4.5

f=open('c://wind.txt', 'r')
i=1
while i<=7:
t=f.readline()
spisok=[t[11:16], t[19:24]]
napravlenie=spisok[0]
napr=float(napravlenie)
print type(napr)
i=i+1
f.close()
нужно сформировать массив napravlenie из значений 1-го столбца, они должны соответствовать типу numpy.ndarray.



Отредактировано (Апрель 8, 2010 16:33:28)

Офлайн

#2 Апрель 8, 2010 18:54:17

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

может кто-нибудь знает как можно сформировать массив для данного примера (используя значения из файла)



Офлайн

#3 Апрель 8, 2010 19:06:56

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

как создать массив

sp = []
for x in open("/home/rodegast/12.txt","r").readlines(): sp.append(x.split()[0])



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано (Апрель 8, 2010 19:11:01)

Офлайн

#4 Апрель 8, 2010 19:10:40

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

Rodegast
Rodegast
Зачем такие сложности? :)
zip(*[x.split() for x in open('c:/wind.txt')])



Офлайн

#5 Апрель 8, 2010 19:18:20

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2742
Репутация: +  183  -
Профиль   Отправить e-mail  

как создать массив

Ну можно и так, правда ему только первый столбец нужен.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#6 Апрель 8, 2010 19:27:18

knkd
От:
Зарегистрирован: 2009-06-14
Сообщения: 225
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

Rodegast
Ну можно и так, правда ему только первый столбец нужен.
:)
zip(*[x.split() for x in open('c:/wind.txt')])[0]



Офлайн

#7 Апрель 8, 2010 20:26:04

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

как создать массив

Мне первый вариант не кажется сложным в отличие от вашего.
Вот тоже самое, но покороче:

sp = [x.split()[0] for x in open("/home/rodegast/12.txt")]



Офлайн

#8 Апрель 8, 2010 20:49:27

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

спасибо за советы, я проверил всё работает! я немного дописал код вот что получилось

sp = []
for x in open('c://wind.txt','r').readlines(): sp.append(x.split()[1])
print type (sp)
vv = np.array(sp)
print vv
print vv[1]+vv[2]
а можно сделать чтобы массив vv выводился без апострофов? сейчас выводит вот так:
>>>
<type ‘list’>
<type ‘numpy.ndarray’>

65.0309.0
>>>
это всё нужно чтобы можно было выполнять различные операции над элементами массива vv (как в данном примере это сложение)



Офлайн

#9 Апрель 8, 2010 20:56:23

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

как создать массив

vv = np.array([float(x.split()[1]) for x in open("c://wind.txt")])



Отредактировано (Апрель 8, 2010 21:07:29)

Офлайн

#10 Апрель 8, 2010 21:05:42

skorpik
От:
Зарегистрирован: 2010-03-31
Сообщения: 52
Репутация: +  0  -
Профиль   Отправить e-mail  

как создать массив

спасибо! это то что мне нужно



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version