機器學習入門三劍客之numpy

2021-08-21 05:55:17 字數 4428 閱讀 3120

import numpy as np

# 建立簡單的列表

a = [1, 2, 3, 4]

# 將列表轉換為陣列

b = np.array(b)

b.size
b.shape
b.ndim
b.dtype
array_one = np.ones([10, 10])
array_zero = np.zeros([10, 10])

正態分佈

給定均值/標準差/維度的正態分佈np.random.normal(1.75, 0.1, (2, 3))

# 正態生成4行5列的二維陣列

arr = np.random.normal(1.75, 0.1, (4, 5))

print(arr)

# 擷取第1至2行的第2至3列(從第0行算起)

after_arr = arr[1:3, 2:4]

print(after_arr)

陣列索引

改變陣列形狀

print("reshape函式的使用!")

one_20 = np.ones([20])

print("-->1行20列<--")

print (one_20)

one_4_5 = one_20.reshape([4, 5])

print("-->4行5列<--")

print (one_4_5)

原始資料

條件判斷

import numpy as np

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

stus_score > 80

三目運算

import numpy as np

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

np.where(stus_score < 80, 0, 90)

求最大值

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一列的最大值(0表示列)

print("每一列的最大值為:")

result = np.amax(stus_score, axis=0)

print(result)

print("每一行的最大值為:")

result = np.amax(stus_score, axis=1)

print(result)

求最小值

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的最小值(0表示列)

print("每一列的最小值為:")

result = np.amin(stus_score, axis=0)

print(result)

# 求每一行的最小值(1表示行)

print("每一行的最小值為:")

result = np.amin(stus_score, axis=1)

print(result)

求平均值

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的平均值(0表示列)

print("每一列的平均值:")

result = np.mean(stus_score, axis=0)

print(result)

# 求每一行的平均值(1表示行)

print("每一行的平均值:")

result = np.mean(stus_score, axis=1)

print(result)

求方差

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 求每一行的方差(0表示列)

print("每一列的方差:")

result = np.std(stus_score, axis=0)

print(result)

# 求每一行的方差(1表示行)

print("每一行的方差:")

result = np.std(stus_score, axis=1)

print(result)

加法

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

print("加分前:")

print(stus_score)

# 為所有平時成績都加5分

stus_score[:, 0] = stus_score[:, 0]+5

print("加分後:")

print(stus_score)

乘法

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

print("減半前:")

print(stus_score)

# 平時成績減半

stus_score[:, 0] = stus_score[:, 0]*0.5

print("減半後:")

print(stus_score)

image.png

a = np.array([1, 2, 3, 4])

b = np.array([10, 20, 30, 40])

c = a + b

d = a - b

e = a * b

f = a / b

print("a+b為", c)

print("a-b為", d)

print("a*b為", e)

print("a/b為", f)

根據權重計算成績

矩陣計算總成績

stus_score = np.array([[80, 88], [82, 81], [84, 75], [86, 83], [75, 81]])

# 平時成績佔40% 期末成績佔60%, 計算結果

q = np.array([[0.4], [0.6]])

result = np.dot(stus_score, q)

print("最終結果為:")

print(result)

垂直拼接

print("v1為:")

v1 = [[0, 1, 2, 3, 4, 5],

[6, 7, 8, 9, 10, 11]]

print(v1)

print("v2為:")

v2 = [[12, 13, 14, 15, 16, 17],

[18, 19, 20, 21, 22, 23]]

print(v2)

# 垂直拼接

result = np.vstack((v1, v2))

print("v1和v2垂直拼接的結果為")

print(result)

水平拼接

print("v1為:")

v1 = [[0, 1, 2, 3, 4, 5],

[6, 7, 8, 9, 10, 11]]

print(v1)

print("v2為:")

v2 = [[12, 13, 14, 15, 16, 17],

[18, 19, 20, 21, 22, 23]]

print(v2)

# 垂直拼接

result = np.hstack((v1, v2))

print("v1和v2水平拼接的結果為")

print(result)

csv檔案以逗號分隔資料

讀取csv格式的檔案

資料處理三劍客之Numpy

ndarray和list列表的區別 python list 列表儲存的是物件的指標,比如 0,1,2 需要儲存 3 個指標和 3 個整數的物件,浪費記憶體資源和cpu計算時間 numpy中的ndarray是一種儲存單一資料型別的多維陣列結構,儲存在乙個連續的記憶體塊中,節約了計算資源。numpy n...

三劍客之HTML,CSS,JS

檔案 夾 名 1 整個 放在乙個命名為 學號姓名 1 資料夾中 2 檔案要分類管理,所有素材和網頁分類存放在相應資料夾 例如 img web 中 3 主頁名index.htm,檔案及資料夾名字不能用中文 4 網頁個數至少2個 5 整個 大小在25mb以下 6 網頁中不用的word txt等素材要求刪...

三劍客之sed grep

如何取得 etc hosts 檔案的許可權對應的數字內容,如 rw r r 為 644,要求使用命令取得644 這樣的數字。root znix stat etc hosts awk f 0 nr 4 root znix stat c a etc hosts linux 下通過 mkdir 命令建立乙...