[PYTHON] La fonction numpy que j'ai apprise cette année

En repensant à cette année, je présenterai les fonctions numpy que j'ai apprises cette année.

r_, c_ Le premier est la concaténation des matrices. J'utilisais beaucoup vstack et hstack, mais j'utilise ceci parce que r_ et c_ sont plus courts et plus faciles à écrire.

>>> a = np.arange(6).reshape(2, 3)
>>> b = np.arange(6, 12).reshape(2, 3)
>>> a
array([[0, 1, 2],
       [3, 4, 5]])
>>> b
array([[ 6,  7,  8],
       [ 9, 10, 11]])
>>> r_[a, b]
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11]])
>>> c_[a, b]
array([[ 0,  1,  2,  6,  7,  8],
       [ 3,  4,  5,  9, 10, 11]])

bmat Rejoignez une grille.

>>> A = np.matrix('1 1; 1 1')
>>> B = np.matrix('2 2; 2 2')
>>> C = np.matrix('3 4; 5 6')
>>> D = np.matrix('7 8; 9 0')
>>> np.bmat([[A, B], [C, D]])
matrix([[1, 1, 2, 2],
        [1, 1, 2, 2],
        [3, 4, 7, 8],
        [5, 6, 9, 0]])

vsplit, hsplit C'est une fonction de fractionnement.

>>> a = np.arange(24).reshape(6, 4)
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
>>> np.vsplit(a, 2) #Divisé en deux lignes
[array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]]),
 array([[12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])]
>>> np.vsplit(a, [3, 5]) #Fractionner la ligne en 3e et 5e ligne
[array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]]),
 array([[12, 13, 14, 15],
       [16, 17, 18, 19]]),
 array([[20, 21, 22, 23]])]
>>> np.hsplit(a, [3]) #Divisez la colonne par la troisième colonne
[array([[ 0,  1,  2],
       [ 4,  5,  6],
       [ 8,  9, 10],
       [12, 13, 14],
       [16, 17, 18],
       [20, 21, 22]]),
 array([[ 3],
       [ 7],
       [11],
       [15],
       [19],
       [23]])]

vectorize Permet d'utiliser des fonctions pour les scalaires dans des tableaux numpy tels que np.sin.

>>> a = np.arange(6).reshape(2, 3)
>>> f = lambda x: x * x
>>> vf = np.vectorize(f)
>>> vf(a)
array([[ 0,  1,  4],
       [ 9, 16, 25]])

multiply Une fonction «multiplier» qui multiplie les éléments d'une matrice. Je l'utilise occasionnellement lors de l'utilisation de matrice.

>>> a = np.matrix(np.arange(4).reshape(2, 2))
>>> b = np.matrix(np.arange(4, 8).reshape(2, 2))
>>> a
matrix([[0, 1],
        [2, 3]])
>>> b
matrix([[4, 5],
        [6, 7]])
>>> np.multiply(a, b)
matrix([[ 0,  5],
        [12, 21]])

linalg.matrix_power C'est un calcul multiplicateur de la matrice.

>>> a = np.matrix(np.arange(4).reshape(2, 2))
>>> np.linalg.matrix_power(a, 0)
matrix([[1, 0],
        [0, 1]])
>>> np.linalg.matrix_power(a, 1)
matrix([[0, 1],
        [2, 3]])
>>> np.linalg.matrix_power(a, 2)
matrix([[ 2,  3],
        [ 6, 11]])

asscalar Scalar un tableau avec 1 élément.

>>> np.asscalar(np.array([10.0]))
10.0
>>> np.asscalar(np.array([10.0, 20.0]))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 463, in asscalar
    return a.item()
ValueError: can only convert an array of size 1 to a Python scalar

is_busday C'est une fonction de juger s'il s'agit d'un jour de semaine.

>>> import datetime
>>> np.is_busday(datetime.date(2014, 12, 25))
True
>>> np.is_busday(datetime.date(2014, 12, 27))
False
>>> np.is_busday(datetime.date(2014, 12, 23))
True
>>> np.is_busday(datetime.date(2014, 12, 23), holidays=[datetime.date(2014, 12, 23)])
False

piecewise Créez une fonction de partition.

f(x) = \begin{cases}
f_1(x), & \text{if }condition_1(x)\text{ is true} \\
f_2(x), & \text{if }condition_2(x)\text{ is true} \\
...
\end{cases}
>>> x = np.linspace(-2.5, 2.5, 6)
>>> x
array([-2.5, -1.5, -0.5,  0.5,  1.5,  2.5])
>>> np.piecewise(x, [x < 0, x >= 0], [-1, 1])
array([-1., -1., -1.,  1.,  1.,  1.])
>>> np.piecewise(x, [x < 0, x >= 0], [lambda x: -x, lambda x: x])
array([ 2.5,  1.5,  0.5,  0.5,  1.5,  2.5])

Recommended Posts

La fonction numpy que j'ai apprise cette année
Résumé des fonctions numpy que je ne connaissais pas
Fonction universelle NumPy
J'ai étudié ça! !!
Cette fois, j'ai appris Python I et II à Progate.
Cette fois, j'ai appris python III et IV avec Prorate
J'ai écrit GP avec numpy
Une liste de fonctions que j'ai rencontrées avec 100 coups Numpy et j'ai pensé "C'est pratique!"
Ce que j'ai appris sur Linux
Ce que j'ai appris en Python
J'ai appris la grammaire de base de Python
Fonctions Python apprises avec la chimioinfomatique