Входные массивы для выполнения арифметических операций, таких как add (), subtract (), multiply () и split (), должны иметь одинаковую форму или соответствовать правилам вещания массива.
пример
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 выдается предупреждение о переполнении.
пример
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 ()
Эта функция обрабатывает элементы в первом входном массиве как базовые и возвращает их в степени соответствующего элемента во втором входном массиве.
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 () также выдает тот же результат.
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 () — возвращает угол сложного аргумента. Функция имеет параметр степени. Если это правда, угол в градусах возвращается, в противном случае угол в радианах.
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)
Это даст следующий результат —