numpy模塊

一、Numpy是什麼?

Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的表示形式,不過numpy爲我們提供了更多的函數。如果接觸過matlab、scilab,那麼numpy很好入手

二、numpy的一些方法:

使用之前安裝好numpy模塊

1、創建一維、二維數組:

import numpy as np
arr = np.array([1,2,3,4]) # 創建一維數組
arr1 = np.array([[1,2,3,4],[5,6,7,8],[7,8,9,10]]) # 創建二維數組
print(arr)
print(arr1)

運行結果:

2、查看數組的屬性

(1)查看維數 ndim

# 查看數組維度  ndim
print(arr.ndim)  # 1
print(arr1.ndim)  # 2

(2)查看數組的結構:shape

最終結果以元組形式顯示 表示幾行幾列

# 查看數組結構 shape
print(arr.shape)
print(arr1.shape)
# 可以通過給數組結構重新賦值從而改變數組結構
arr1.shape = 4,3
print(arr1)

運行結果:

(3)查看元素類型 dtype

# 查看數組元素數據類型
print(arr.dtype)
print(arr1.dtype)

運行結果: (int32表示爲int類型數據,在系統中佔4個字節,32個比特位,可存儲對應的十進制數的範圍爲-2^31~2^31-1)

3、專門用來構造數組的一些函數

 

(1)arange函數

與重用的range函數類似,但是arrange創建的是數組類型,而range函數在python2中創建的是一個list列表類型,在python3是range類型,一個可迭代的對象

用法:

arange(起始值,終止值,步長)注意:取不到終止值

arr3 = np.arange(0,1,0.1)
print(arr3)
arr4 = np.arange(1,10,1)
print(arr4)
print(type(arr3),type(arr4))
print(type(range(1,4,1)))
for i,j in zip(arr3,range(1,4,1)):
    print(i,j)

運行結果:

(2)構造等差數列的數組 linspace

用法:linspace(起始值,終止值,元素個數) 注意;可以取到終止值,其中元素默認是浮點數類型

arr5 = np.linspace(1,10,10) # 包含終止值
print(arr5)
for i in arr5:
    print(i,'元素類型是:',type(i))

運行結果:

(3)構造等比數列的數組 

logspace(起始指數,終止指數,元素個數) 

 注意:起始值,終止值都是指數,默認底數爲base = 10

包含終止值,元素是浮點數類型

arr6 = np.logspace(0,2,3)
print(arr6)

運行結果:

(4)構造全0數組: zeros

zeros([(2,3)]) 注意:傳入的是元組類型的參數

arr7 = np.zeros([3,4])
print(arr7)

運行結果:

(5)構造全1數組:ones

ones([(2,3)]) 注意:傳入的是元組類型的參數

arr8 = np.ones([3,4])
print(arr8)

運行結果:

(6)構造單位數組:方陣 eye

print(np.eye(4))

運行結果:

(7)構造對角數組(方陣)diag

print(np.diag([1,2,3,4]))

運行結果:

4、生成隨機數

(1)0到1範圍內的數組成的 一維數組 np.random.random() 

print(np.random.random(10))

運行結果:

(2)生成服從正態分佈的隨機數  np.random.randn()

print(np.random.randn(3,4))

運行結果:

(3)生成指定範圍內的整數:np.random.randint()

print(np.random.randint(1,10,size=[3,4]))

運行結果:

(4)均勻分佈:生成0到1之間的隨機數 np.random.rand()

print(np.random.rand(3,4))

運行結果:

5、數組的索引

(1)一維數組的索引

arr = np.arange(10) # 生成一維數組
print(arr)
print(arr[0])
print(arr[::2])   #取所有偶數索引項
print(arr[1::2])  #去所有奇數索引項

運行結果:

(2)二維數組的索引

# 二維數組索引
arr2 = np.array([[1,2,3,4],[5,6,7,8],[9,8,7,6]])
print(arr2)
print(arr2.shape)  # 數組的結構
print(arr2[1,0])   # 取得是5 2行1列
print(arr2[0,2:4]) #取得是[3,4] 第一行第三列到第四列
print(arr2[0:2,1:3]) # 2,3 6,7  取得是第一行和第二行的第二列和第三列
print(arr2[1])     #取得是第二行的所有值 [5 6 7 8]
print(arr2[1,:])   #取得是第二行的所有值 [5 6 7 8]
print(arr2[1:3,1:4])  # 取得是第一行和第二行的第2,3,4列
print(arr2[(1,2),(1,3)])  #[6 6] 第二行第二列 和 第三行第四列

運行結果:

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章