2013-08-22 2 views
-3

Например,Есть ли умные operationes на элементах списка в Python

a=[1,2,3,4,5] 
b=[1,2,3,4,5] 
c=[] 
for i,j in a,b: 
    c.append(i+j) 

Могу ли я сделать это как c=a+b, Не с = [I = J Фори, J в почтовый индекс (а, б)]

a=[1,2,3,4,5] 
th=3 
c=[] 
for i in a: 
    c.append(i>th) 

Могу ли я сделать это как c=a>th

PS: Я не хочу использовать NumPy. Я имею в виду, могу ли я сделать это в списке, например numpy.Besuase, он перенесет список в массив.

+7

Стандартный пакет для таких вещей, как ['numpy'] (http://www.numpy.org/). – senderle

+1

'numpy' существует, частично, потому что такие операции не являются частью основного языка Python. Фактически, это, вероятно, как можно ближе к части ядра, как может получить модуль, видя, как синтаксис [расширенный срез] (http://docs.python.org/release/2.3.5/whatsnew/section-slices. html) был добавлен только для 'numpy'. – chepner

+1

Вы _could_ подкласс массива и переопределите его '+' оператор, но тогда вам все равно придется объявлять хотя бы один из ваших массивов как экземпляр класса _that_, поэтому вы можете использовать numpy –

ответ

4

Использование NumPy:

>>> import numpy as np 
>>> a = np.array([1,2,3,4,5]) 
>>> b = np.array([1,2,3,4,5]) 
>>> a + b 
array([ 2, 4, 6, 8, 10]) 
>>> a > 3 
array([False, False, False, True, True], dtype=bool) 

От numpy website:

NumPy - это фундаментальный пакет для научных вычислений с Python. Он содержит среди прочего:

  • мощный N-мерный массив объектов
  • сложные (вещания) функции
  • инструменты для интеграции C/C++ и Fortran код
  • полезная линейная алгебра, преобразование Фурье, и случайных чисел

Помимо очевидных научных применений, NumPy также может использоваться как эффективный многомерный co netwer общих данных. Произвольные типы данных могут быть определены. Это позволяет NumPy плавно и быстро интегрируется с широким спектром баз данных.

4

Для первого:

c = [i+j for i, j in zip(a, b)] 

Для второго:

c = [i > th for i in a] 
+0

Я тоже так знаю. Я хочу написать любые другие операции, например, в matlab – Samuel

+4

@Samuel Да, это называется numpy, нравится вам это или нет. –