天天看點

Python資料分析與應用 第二章 NumPy 數值計算基礎(下)

# 代碼 2-39
import numpy as np  #導入NumPy庫
arr = np.arange(100).reshape(10,10)  #建立一個數組
np.save("./tmp/save_arr",arr)  #np.save儲存數組
print('儲存的數組為:\n',arr)
# 代碼 2-40
arr1 = np.array([[1,2,3],[4,5,6]])
arr2 = np.arange(0,1.0,0.1)
np.savez('./tmp/savez_arr',arr1,arr2)    #np.savez儲存多元數組
print('儲存的數組1為:',arr1)
print('儲存的數組2為:',arr2)
# 代碼 2-41
loaded_data = np.load("./tmp/save_arr.npy")  #讀取含有單個數組的檔案
print('讀取的數組為:\n',loaded_data)
           
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
loaded_data1 = np.load("./tmp/savez_arr.npz")  #讀取含有多個數組的檔案
print('讀取的數組1為:',loaded_data1['arr_0'])
print('讀取的數組2為:',loaded_data1['arr_1'])
# 代碼 2-42
arr = np.arange(0,12,0.5).reshape(4,-1) #四行
print('建立的數組為:',arr)
#fmt ="%d"為指定儲存為整數
np.savetxt("./tmp/arr.txt", arr, fmt="%d", delimiter=",") #%d為整數
#讀入的時候也需要指定逗号分隔
loaded_data = np.loadtxt("./tmp/arr.txt",delimiter=",")
print('讀取的數組為:',loaded_data)
# 代碼 2-44
np.random.seed(42)  #設定随機種子
arr = np.random.randint(1,10,size = 10)  #生成随機數
print('建立的數組為:',arr)
arr.sort()  #直接排序
print('排序後數組為:',arr)
           
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
arr = np.random.randint(1,10,size = (3,3))  #生成3行3列的随機數
print('建立的數組為:',arr)

arr.sort(axis = 1)  #沿着橫軸排序
print('排序後數組為:',arr)

arr.sort(axis = 0)  #沿着縱軸排序
print('排序後數組為:',arr)

# 代碼 2-45
arr = np.array([2,3,6,8,0,7])
print('建立的數組為:',arr)
print('排序後數組為:',arr.argsort())  #傳回值為重新排序值的下标

# 代碼 2-46
a = np.array([3,2,6,4,5])
b = np.array([50,30,40,20,10])
c = np.array([400,300,600,100,200])
d = np.lexsort((a,b,c))  #lexsort函數隻接受一個參數,即(a,b,c)多個鍵值排序是按照最後一個傳入資料計算的
print('排序後數組為:',list(zip(a[d],b[d],c[d])))  #按列排序

           
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
# 代碼 2-47
names = np.array(['小明', '小黃', '小花', '小明', '小花', '小蘭', '小白'])
print('建立的數組為:',names)
print('去重後的數組為:',np.unique(names))
ints = np.array([1,2,3,4,4,5,6,6,7,8,8,9,10])  #建立數值型資料
print('建立的數組為:',ints)
print('去重後的數組為:',np.unique(ints))
# 代碼 2-48
arr = np.arange(5)
print('建立的數組為:',arr)
print('重複後數組為:',np.tile(arr,3))  #對數組進行重複
# 代碼 2-49
np.random.seed(42)  #設定随機種子
arr = np.random.randint(0,10,size = (3,3))
print('建立的數組為:',arr)
print('重複後數組為:',np.repeat(arr,2, axis = 0))  #按行進行元素重複
print('重複後數組為:',arr.repeat(2, axis = 1))  #按列進行元素重複
# 代碼 2-50
arr = np.arange(20).reshape(4,5)
print('2-50建立的數組為:',arr)
print('數組的和為:',np.sum(arr))  #計算數組的和
print('數組橫軸的和為:',arr.sum(axis = 0))  #沿着橫軸計算求和
print('數組縱軸的和為:',arr.sum(axis = 1))  #沿着縱軸計算求和
print('數組的均值為:',np.mean(arr))  #計算數組均值
print('數組橫軸的均值為:',arr.mean(axis = 0))  #沿着橫軸計算數組均值
print('數組縱軸的均值為:',arr.mean(axis = 1))  #沿着縱軸計算數組均值
print('數組的标準差為:',np.std(arr))  #計算數組标準差
print('數組的方差為:',np.var(arr))  #計算數組方差
print('數組的最小值為:',np.min(arr))  #計算數組最小值
print('數組的最大值為:',np.max(arr))  #計算數組最大值
print('數組的最小元素為:',np.argmin(arr))  #傳回數組最小元素的索引
print('數組的最大元素為:',np.argmax(arr))  #傳回數組最大元素的索引
# 代碼 2-51
arr = np.arange(2,10)
print('建立的數組為:',arr)
print('數組元素的累計和為:',np.cumsum(arr))  #計算所有元素的累計和
print('數組元素的累計積為:',np.cumprod(arr))  #計算所有元素的累計積

           
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
import numpy as np
iris_sepal_length = np.loadtxt("./data/iris_sepal_length.csv",delimiter=",")  #讀取檔案
print('花萼長度表為:',iris_sepal_length)
iris_sepal_length.sort()
print('排序後花萼長度表為:',iris_sepal_length)
print('去重後的花萼長度表為:',np.unique(iris_sepal_length))
print('花萼長度表的總和為:',np.sum(iris_sepal_length))  #計算數組總和
print('花萼長度表的累計和為:',np.cumsum(iris_sepal_length))
print('花萼長度表的均值為:',np.mean(iris_sepal_length))  #計算數組均值
#計算數組标準差
print('花萼長度表的标準差為:',np.std(iris_sepal_length))
print('花萼長度表的方差為:',np.var(iris_sepal_length))  #計算數組方差
print('花萼長度表的最小值為:',np.min(iris_sepal_length))  #計算最小值
print('花萼長度表的最大值為:',np.max(iris_sepal_length))  #
           
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)
Python資料分析與應用 第二章 NumPy 數值計算基礎(下)

繼續閱讀