1. 程式人生 > >Python中的Numpy模組(1)

Python中的Numpy模組(1)

1.什麼是Numpy?

     Numpy   (Numeric Python) 

    Numpy系統是Python中的一種開源的數值計算擴充套件。

       (1)   一個強大的N維陣列物件Array

        (2)   比較成熟的(廣播) 函式庫

        (3)   用於整合C/C++和fortran 程式碼的工具包

         (4)   實用的線性代數,傅立葉變換和隨機數生成函式

        (5) numpy和稀疏矩陣運算包scipy配合使用更加強大

2.使用Numpy建立numpy陣列

# 匯入numpy模組
import numpy as np

# 檢視numpy的版本號
print(np.__version__)

# 建立ndarray
n1 = np.array([3, 1, 4, 5])  # 一維的
print(n1)
# 結果  [3 1 4 5]

n2 = np.array([[5, 1, 2, 6], [7, 9, 6, 45], [1, 5, 4, 6]])  # 二維的
print(n2)
# 結果  [[ 5  1  2  6]
#       [ 7  9  6 45]
#       [ 1  5  4  6]]

# 打印出維度
print(n1.shape)  # (4,)  四行 沒有列
print(n2.shape)  # (2, 4)   三行四列

#str型別array
n3 = np.array(list('hello'))
print(n3)   #['h' 'e' 'l' 'l' 'o']
print(type(n3))

# 如果傳進來的列表中包含不同的型別,則統一為同一型別,優先順序:str->float->int
n4 = np.array([1,3.14,'python'])
print(n4)

3.使用Nunpy的routines建立

# 1.通過ones  (內容全是1)
# np.ones(shape,dtype=None)
# 引數說明:  shape:維度,型別是元素型別  dtype:型別
n1 = np.ones(shape=(10, 8), dtype=int)  # 二維的型別為int
print(n1)

# 三維的型別為float
n2 = np.ones(shape=(100, 80, 3), dtype=float)
print(n2)

# 2.通過zeros   (內容全是0)
# np.zeros(shape,dtype=None)

n3 = np.zeros((4, 4))  # 裡面可以直接寫引數值
print(n3)

# 3.通過 full   (內容全是fill_value的值)
# np.full(shape,fill_value,dtype=None)
n4 = np.full((10, 10), fill_value=1024)
print(n4)

# 4.通過 eye   (根據引數值:N行N列,並且矩陣對角線的值為1,其他的位置上的值為0)
# np.eye(N,M=None,k=0,dtype=float)
n5 = np.eye(10)  # 10行10列,對角線為1,其他位置為0   (即一元十次方程,滿秩矩陣)
print(n5)

# 5.通過 linspace   (內容全是fill_value的值)
# np.linspace(start,stop,num=50,endpoint=True,retstep=False,dtype=None)
# 引數說明: 從start開始到stop結束,均勻劃分num個數
n6 = np.linspace(0, 100, 50)
print(n6)

# 6.通過arange()
n7 = np.arange(0, 100, 20)  # 從0到100(左閉右開)  ,步長為2
print(n7)

# 7.1通過random.randint()   隨機生成數
#  從0開始到150之間隨機生成size個數,(也是左閉右開)
n8 = np.random.randint(0,150,size=5)
print(n8)
# 7.2random.randn()標準的正太分佈
n9 = np.random.randn(100)
print(n9)
# 7.3random.normal()標準的分佈
#  loc 代表錨點,即位置    scale代表在loc上下波動的係數,數值越大波動的越厲害
n10 = np.random.normal(loc=175,scale= 2,size=100)
print(n10)
#  7.4random.random()  生成0到1的隨機數,左閉右開
n11 = np.random.random(size= (200,300,3))   #(200,300,3)代表維度
print(n11)