1. 程式人生 > >【numpy 入門】-- 基本操作(1)

【numpy 入門】-- 基本操作(1)

注:
  在這裡,只是選擇一些常用的方法就行了,比如生成陣列中,array()可以有好幾種方式,但本人只是保留了常用的一些
  參考:Numpy 官網教程

1. 生成陣列

>>> import numpy as np
>>> a = np.array([ [1,2,3,4], [1,2,3,4] ] )  # 直接填寫生成
>>> a
array([[1, 2, 3, 4],
       [1, 2, 3, 4]])
>>>
>>> b = np.zeros((3,4))         # 生成三行四列元素為 0 的二維陣列
>>> b array([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.]]) >>> >>> b = np.zeros((3,4),dtype = np.int) # 可以修改資料型別 >>> b array([[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]) >>> >>> c = np.ones((3,4)) # 類似地還有 ones() 方法
>>> c array([[ 1., 1., 1., 1.], [ 1., 1., 1., 1.], [ 1., 1., 1., 1.]]) >>> >>> d = np.arange(10) # 生成範圍在[0,10),間隔為 1 的矩陣 >>> d array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> d = np.arange(1,10,1) # 生成範圍在[1,10),間隔為 1 的矩陣 >>>
d array([1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> d.reshape(3,3) # 顧名思義,重組形狀,變為 3*3 array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])

2. 基本運算

  • 加減乘除 + - * / **這 5 種運算為矩陣對應元素相互運算
  • 可以進行三角函式的計算:np.sin(a)
  • 布林運算:a<35,逐個元素和 35 進行比較,返回布林矩陣
  • 矩陣的乘法,得滿足(a,n)*(n,b) 形式
>>> import numpy as np
>>> a = np.array([[1,2],[3,4]])
>>> b = a
>>>
>>> a.dot(b)
array([[ 7, 10],
       [15, 22]])
>>>
>>> np.dot(a,b)     # 一樣使用
array([[ 7, 10],
       [15, 22]])
  • 對單一陣列的操作,引數中 axis = 0 表示列,axis = 1 表示行
>>> b = np.arange(16).reshape(4,4)
>>> b
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>>
>>> b.sum()                   # 全部元素的和
120
>>> b.sum(axis=1)             # 列和
array([ 6, 22, 38, 54])
>>> b.sum(axis=0)             # 行和
array([24, 28, 32, 36])
>>>
>>> b.min()                   # 和 sum() 一樣使用
0
>>> b.max()
15
>>> b.cumsum(axis=1)          # 每行元素的累積和
array([[ 0,  1,  3,  6],
       [ 4,  9, 15, 22],
       [ 8, 17, 27, 38],
       [12, 25, 39, 54]], dtype=int32)
>>>
>>>
>>> c = np.arange(4)
>>> c
array([0, 1, 2, 3])
>>> np.exp(c)              # 以 e 為低的指數運算
array([  1.        ,   2.71828183,   7.3890561 ,  20.08553692])
>>> np.sqrt(c)
array([ 0.        ,  1.        ,  1.41421356,  1.73205081])

這節講了一些基本的運算,差不多能夠滿足平時的使用了,但是官網教程裡還有 long long 長呢,繼續慢慢看唄