(二)初識NumPy庫(數組的操做和運算)

本章主要介紹的是ndarray數組的操做和運算!python

1、 ndarray數組的操做:

操做是指對數組的索引和切片。索引是指獲取數組中特定位置元素的過程;切片是指獲取數組中元素子集的過程。數組

一、一維數組的索引和切片與python的列表相似:函數

 索引:spa

import numpy as np

a = np.array([9, 8, 7, 6, 5])
print(a[2])
7

切片:起始編號:終止編號:(不含):步長  三元素用冒號分割code

import numpy as np
a = np.array([9, 8, 7, 6, 5])
print(a[1:4:2])
[8 6]

二、多維數組的索引和切片:blog

索引:索引

import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print(a)
print(a[1, 2, 3])
print(a[0, 1, 2])
print(a[-1, -2, -3])
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
23
6
17

切片:選取一個維度用:io

import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print(a)
print(a[:, 1, -3])              
print(a[:, 1:3, :])
print(a[:, :, ::2])
[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
[ 5 17]
[[[ 4  5  6  7]
  [ 8  9 10 11]]

 [[16 17 18 19]
  [20 21 22 23]]]
[[[ 0  2]
  [ 4  6]
  [ 8 10]]

2、ndarray數組的運算:

一、數組與標量之間的運算做用於數組的每個元素:table

import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print(a)
print(a.mean())
print(a / a.mean())

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
11.5
[[[0.         0.08695652 0.17391304 0.26086957]
  [0.34782609 0.43478261 0.52173913 0.60869565]
  [0.69565217 0.7826087  0.86956522 0.95652174]]

 [[1.04347826 1.13043478 1.2173913  1.30434783]
  [1.39130435 1.47826087 1.56521739 1.65217391]
  [1.73913043 1.82608696 1.91304348 2.        ]]]

 二、Numpy的一元函數:class

對ndarray中的數據執行元素級運算的函數:

Numpy的一元函數
np.abs(x) np.fabs(x)  計算數組各元素的絕對值
 np.sqrt(x)  計算數組各元素的平方根
 np.square(x)  計算數組各元素的平方
 np.log(x) np.log10(x) np.log2(x)  計算數組各元素的天然對數、10底對數和2底對數
 np.ceil(x) np.floor(x)  計算數組各元素的ceiling和floor值(ceiling是不超過這個元素的整數值,floor是小於這個元素的最大整數值)
np.rint(x)  計算數組各元素的四捨五入值
 np.modf(x)  將數組各元素的小數和整數部分以兩個獨立數組形式返回
 np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x)  計算數組各元素的普通型和雙曲線的三角函數
 np.exp(x)  計算數組各元素的指數值
 np.sign(x)  計算數組各元素的符號值,1(+),0,-1(-)

 

 

 

 

 

 

 

 

 

 

舉例說明:

import numpy as np
a = np.arange(24).reshape((2, 3, 4))
print(np.square(a))
a = np.sqrt(a)
print(a)
print(np.modf(a))

[[[ 0  1  2  3]
  [ 4  5  6  7]
  [ 8  9 10 11]]

 [[12 13 14 15]
  [16 17 18 19]
  [20 21 22 23]]]
11.5
[[[0.         0.08695652 0.17391304 0.26086957]
  [0.34782609 0.43478261 0.52173913 0.60869565]
  [0.69565217 0.7826087  0.86956522 0.95652174]]

 [[1.04347826 1.13043478 1.2173913  1.30434783]
  [1.39130435 1.47826087 1.56521739 1.65217391]
  [1.73913043 1.82608696 1.91304348 2.        ]]]
[[[  0   1   4   9]
  [ 16  25  36  49]
  [ 64  81 100 121]]

 [[144 169 196 225]
  [256 289 324 361]
  [400 441 484 529]]]
[[[0.         1.         1.41421356 1.73205081]
  [2.         2.23606798 2.44948974 2.64575131]
  [2.82842712 3.         3.16227766 3.31662479]]

 [[3.46410162 3.60555128 3.74165739 3.87298335]
  [4.         4.12310563 4.24264069 4.35889894]
  [4.47213595 4.58257569 4.69041576 4.79583152]]]
(array([[[0.        , 0.        , 0.41421356, 0.73205081],
        [0.        , 0.23606798, 0.44948974, 0.64575131],
        [0.82842712, 0.        , 0.16227766, 0.31662479]],

       [[0.46410162, 0.60555128, 0.74165739, 0.87298335],
        [0.        , 0.12310563, 0.24264069, 0.35889894],
        [0.47213595, 0.58257569, 0.69041576, 0.79583152]]]), array([[[0., 1., 1., 1.],
        [2., 2., 2., 2.],
        [2., 3., 3., 3.]],

       [[3., 3., 3., 3.],
        [4., 4., 4., 4.],
        [4., 4., 4., 4.]]]))

 

三、Numpy的二元函數:

Numpy的二元函數
+-*/ 兩個數組各元素進行對應運算
np.maximum(x,y) np.fmax() np.minimum(x,y) np.fmin() 元素級的最大值/最小值計算
np.mod(x,y) 元素級的模運算
np.copysign(x,y) 將數組y中各元素值的符號賦值給數組x對應元素
><>=<===!= 算術比較,產生布爾型數組

 

 

 

 

 

 舉例說明:

import numpy as np
a = np.arange(24).reshape((2, 3, 4))
b = np.sqrt(a)
print(np.maximum(a, b))
print(a > b)

[[[ 0.  1.  2.  3.]
  [ 4.  5.  6.  7.]
  [ 8.  9. 10. 11.]]

 [[12. 13. 14. 15.]
  [16. 17. 18. 19.]
  [20. 21. 22. 23.]]]
[[[False False  True  True]
  [ True  True  True  True]
  [ True  True  True  True]]

 [[ True  True  True  True]
  [ True  True  True  True]
  [ True  True  True  True]]]
相關文章
相關標籤/搜索