Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 12, 2011 05:42:18

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

pyuser
без numpy
sum(x * y for x, y in zip(tuple1, tuple2)) / sum(1 for x in tuple1 if x)
О, спасибо за еще один вариант!
А как тогда в кортеже сложить все элементы?
X = 1+2+3+4+5+6…

Я написал, а у меня не работает…

for i in range(len(mas3)):
X = (mas3 + mas3)/j (j - количества не нулевых элементов в кортеже.)


И он мне выдает index out of range…



Офлайн

#2 Дек. 12, 2011 07:04:46

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Кортеж, число

n2b
А как тогда в кортеже сложить все элементы?
X = 1+2+3+4+5+6…
X = sum((1, 2, 3, 4, 5, 6, ...))
n2b
И он мне выдает index out of range…
ничего удивительного :) на последней итерации i+1 == len(mas3), а это уже выход за пределы списка



Офлайн

#3 Дек. 12, 2011 09:24:16

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

т.е. x=sum(mas3) так надо?



Офлайн

#4 Дек. 12, 2011 12:23:50

Yanzay
От:
Зарегистрирован: 2011-02-14
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

n2b
Два кортежа


Да перестаньте вы списки кортежами называть в конце-то концов.

n2b
т.е. x=sum(mas3) так надо?
именно



Офлайн

#5 Дек. 12, 2011 16:24:19

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Все получилось, большое спасибо! :)



Офлайн

#6 Дек. 12, 2011 19:19:17

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Кортеж, число

:)
1 np.array((1,2,3)) - это и будет массив
2 c=a*b - почленное умножение
3 с!=0 - массив индексов элементов не равных нулю
4 с - из результатов умножения извлечены только ненулевые элементы
5 np.mean© - расчет среднего из ненулевых - то что вам было надо



Офлайн

#7 Дек. 13, 2011 14:54:12

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

doza_and
:)
1 np.array((1,2,3)) - это и будет массив
2 c=a*b - почленное умножение
3 с!=0 - массив индексов элементов не равных нулю
4 с - из результатов умножения извлечены только ненулевые элементы
5 np.mean© - расчет среднего из ненулевых - то что вам было надо
1. а если у меня массив УЖЕ создан и называется mas1. Строка кода np.array(mas1) ругается на (!) array - как не определенную переменную…



Офлайн

#8 Дек. 13, 2011 20:08:40

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Кортеж, число

надо просто сказать

import numpy as np 
nmas=np.array(mas1)
Конечно при этом должен быть установлен numpy. Но он все равно нужен если хотите легкой жизни при расчетах на питоне



Офлайн

#9 Дек. 20, 2011 18:30:49

n2b
От:
Зарегистрирован: 2011-02-10
Сообщения: 125
Репутация: +  0  -
Профиль   Отправить e-mail  

Кортеж, число

Ребят, выручите пожалуйста еще раз, как вот это преобразить в числа, чтобы в последствии сложить:
[, , … ]



Офлайн

#10 Дек. 20, 2011 18:50:16

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Кортеж, число

In [1]: a = [[(0,)], [(7,)], [(3,)], ]

In [2]: a
Out[2]: [[(0,)], [(7,)], [(3,)]]

In [3]: arr = map(lambda a: a[0][0], a)

In [4]: arr
Out[4]: [0, 7, 3]

In [5]: print sum(arr)
10

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version