numpy庫

numpy庫的使用

創建數組

x1 = np.array([1, 2, 3], dtype="int8")

print(x1)
print(x1.dtype) # 數據類型
x2 = np.array(range(1, 10), dtype="int8")

print(x2)
print(x2.dtype)
x3 = np.arange(1, 10, 2, dtype="int8")

print(x3)
print(x3.dtype)

數據類型

x3 = np.arange(1, 10, 2, dtype="int8")

print(x3)
print(x3.dtype)

# 改變數據類型
x4 = x3.astype("float32")

print(x4)
print(x4.dtype)
x5 = np.array([1, 0, 1, 1, 0], dtype="bool")

print(x5)
print(x5.dtype)
# 隨機生成數據
x6 = np.random.random(10)

print(x6)

# 四捨五入
x7 = np.round(x6, 2)
print(x7)

數據形狀

x8 = np.arange(16)
print(x8)
print(x8.shape)

# 改變數組的形狀
x9 = x8.reshape(4, -1)
print(x9)
print(x9.shape)

# 拉平
x10 = x9.flatten()
print(x10)

數組計算

x11 = np.arange(12).reshape(3, 4)
print(x11)

# 數組與數字的加減乘除
x12 = x11 + 3
print(x12)
x13 = np.arange(13, 25).reshape(3, 4)
print(x13)

# 數組與形狀相同的數組計算
x14 = x11 + x13
print(x14)

# 數組與形狀不同的數組計算(不是所有的情況都適用),遵循廣播原則
x15 = np.arange(4).reshape(1, 4)
x16 = x11 - x15
print(x16)

x17 = np.arange(3).reshape(3, 1)
x18 = x11 - x17
print(x18)
print(x11)

# sum(),mean(),max(),min()

# 數組所有元素求和
print(x11.sum())

# 對列進行求和
print(x11.sum(axis=0))

# 對行進行求和
print(x11.sum(axis=1))

讀取文件

txt = np.loadtxt('numpy_read_file.csv', delimiter=',', skiprows=1, usecols=[0, 1, 2], encoding='utf-8', dtype='int64')

print(txt)

切片和索引

# 取某行
print(txt[0])

# 取連續行
print(txt[0:2])

# 取不連續的行
print(txt[[0, 1, 3]])

# 取某列
print(txt[:, 0])

# 取連續列
print(txt[:, 0:2])

# 取不連續的列
print(txt[:, [[0, 2]]])

# 取某行某列
print(txt[1, 1])

# 取連續的多行多列
print(txt[0:2, 0:2])

# 取不連續的多行多列
print(txt[[0, 2],[0, 2]])

三元運算符

print(x11)

# 如果數組的元素小於5,則取0;否則,取5
print(np.where(x11<5, 0, 5))

# clip()裁剪,小於4的替換爲4,大於7的替換爲7
print(x11.clip(4, 7))

數組拼接

print(x11)

x19 = np.arange(13, 25).reshape(3, 4)

print(x19)

# 數組拼接
x20 = np.vstack((x11, x19))  # 垂直拼接
print(x20)
print(x20.shape)

x21 = np.hstack((x11, x19))  # 水平拼接
print(x21)
print(x21.shape)

數組行和列的交換

x22 = np.arange(12).reshape(3, 4)
print(x22)

# 行交換
x22[[1, 2], :] = x22[[2, 1], :]
print(x22)

# 列交換
x22[:, [1, 2]] = x22[:, [2, 1]]
print(x22)

np.random

# 均勻分佈
print(np.random.rand(2, 5))

# 正態分佈
print(np.random.randn(2, 5))

# 產生某個範圍內的隨機整數
print(np.random.randint(0, 10, (2, 4)))

numpy的其它方法

# 返回數組中最大元素的下標
print(np.argmax(x22))

print(np.argmax(x22, axis=0))

# 返回數組中最小元素的下標
print(np.argmin(x22))

print(np.argmin(x22, axis=1))

# 創建全爲0的數組
print(np.zeros((2, 3)))

# 創建全爲1的數組
print(np.ones((2, 3)))

# 創建對角線爲1的方陣
print(np.eye(4))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章