Учебники

NumPy — Арифметические операции

Входные массивы для выполнения арифметических операций, таких как add (), subtract (), multiply () и split (), должны иметь одинаковую форму или соответствовать правилам вещания массива.

пример

Live Demo

import numpy as np 
a = np.arange(9, dtype = np.float_).reshape(3,3) 

print 'First array:' 
print a 
print '\n'  

print 'Second array:' 
b = np.array([10,10,10]) 
print b 
print '\n'  

print 'Add the two arrays:' 
print np.add(a,b) 
print '\n'  

print 'Subtract the two arrays:' 
print np.subtract(a,b) 
print '\n'  

print 'Multiply the two arrays:' 
print np.multiply(a,b) 
print '\n'  

print 'Divide the two arrays:' 
print np.divide(a,b)

Это даст следующий результат —

First array:
[[ 0. 1. 2.]
 [ 3. 4. 5.]
 [ 6. 7. 8.]]

Second array:
[10 10 10]

Add the two arrays:
[[ 10. 11. 12.]
 [ 13. 14. 15.]
 [ 16. 17. 18.]]

Subtract the two arrays:
[[-10. -9. -8.]
 [ -7. -6. -5.]
 [ -4. -3. -2.]]

Multiply the two arrays:
[[ 0. 10. 20.]
 [ 30. 40. 50.]
 [ 60. 70. 80.]]

Divide the two arrays:
[[ 0. 0.1 0.2]
 [ 0.3 0.4 0.5]
 [ 0.6 0.7 0.8]]

Давайте теперь обсудим некоторые другие важные арифметические функции, доступные в NumPy.

numpy.reciprocal ()

Эта функция возвращает обратную аргумент, поэлементно. Для элементов с абсолютными значениями больше 1 результат всегда равен 0 из-за способа, которым Python обрабатывает целочисленное деление. Для целого числа 0 выдается предупреждение о переполнении.

пример

Live Demo

import numpy as np 
a = np.array([0.25, 1.33, 1, 0, 100]) 

print 'Our array is:' 
print a 
print '\n'  

print 'After applying reciprocal function:' 
print np.reciprocal(a) 
print '\n'  

b = np.array([100], dtype = int) 
print 'The second array is:' 
print b 
print '\n'  

print 'After applying reciprocal function:' 
print np.reciprocal(b) 

Это даст следующий результат —

Our array is:
[   0.25    1.33    1.      0.    100.  ]

After applying reciprocal function:
main.py:9: RuntimeWarning: divide by zero encountered in reciprocal
  print np.reciprocal(a)
[ 4.         0.7518797  1.               inf  0.01     ]

The second array is:
[100]

After applying reciprocal function:
[0]

numpy.power ()

Эта функция обрабатывает элементы в первом входном массиве как базовые и возвращает их в степени соответствующего элемента во втором входном массиве.

Live Demo

import numpy as np 
a = np.array([10,100,1000]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying power function:' 
print np.power(a,2) 
print '\n'  

print 'Second array:' 
b = np.array([1,2,3]) 
print b 
print '\n'  

print 'Applying power function again:' 
print np.power(a,b)

Это даст следующий результат —

Our array is:
[  10  100 1000]

Applying power function:
[    100   10000 1000000]

Second array:
[1 2 3]

Applying power function again:
[        10      10000 1000000000]

numpy.mod ()

Эта функция возвращает остаток от деления соответствующих элементов во входном массиве. Функция numpy.remainder () также выдает тот же результат.

Live Demo

import numpy as np 
a = np.array([10,20,30]) 
b = np.array([3,5,7]) 

print 'First array:' 
print a 
print '\n'  

print 'Second array:' 
print b 
print '\n'  

print 'Applying mod() function:' 
print np.mod(a,b) 
print '\n'  

print 'Applying remainder() function:' 
print np.remainder(a,b) 

Это даст следующий результат —

First array:                                                                  
[10 20 30]

Second array:                                                                 
[3 5 7]

Applying mod() function:                                                      
[1 0 2]

Applying remainder() function:                                                
[1 0 2]

Следующие функции используются для выполнения операций над массивом с комплексными числами.

  • numpy.real () — возвращает действительную часть аргумента сложного типа данных.

  • numpy.imag () — возвращает мнимую часть аргумента сложного типа данных.

  • numpy.conj () — возвращает комплексное сопряжение, полученное путем изменения знака мнимой части.

  • numpy.angle () — возвращает угол сложного аргумента. Функция имеет параметр степени. Если это правда, угол в градусах возвращается, в противном случае угол в радианах.

numpy.real () — возвращает действительную часть аргумента сложного типа данных.

numpy.imag () — возвращает мнимую часть аргумента сложного типа данных.

numpy.conj () — возвращает комплексное сопряжение, полученное путем изменения знака мнимой части.

numpy.angle () — возвращает угол сложного аргумента. Функция имеет параметр степени. Если это правда, угол в градусах возвращается, в противном случае угол в радианах.

Live Demo

import numpy as np 
a = np.array([-5.6j, 0.2j, 11. , 1+1j]) 

print 'Our array is:' 
print a 
print '\n'  

print 'Applying real() function:' 
print np.real(a) 
print '\n'  

print 'Applying imag() function:' 
print np.imag(a) 
print '\n'  

print 'Applying conj() function:' 
print np.conj(a) 
print '\n'  

print 'Applying angle() function:' 
print np.angle(a) 
print '\n'  

print 'Applying angle() function again (result in degrees)' 
print np.angle(a, deg = True)

Это даст следующий результат —