日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python之numpy基础_Python知识普及:Numpy基础操作

發布時間:2025/4/5 python 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python之numpy基础_Python知识普及:Numpy基础操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Python知識普及:Numpy基礎操作

Numpy基礎數據結構

創建數組

Numpy通用函數

import numpy as np

# reshape 改變數組維度形狀

ar1 = np.arange(10)

print(ar1)

print("")

print(ar1.reshape(5, 2)) # 方式1

print("")

ar1 = np.ones((2, 5))

print(ar1)

print("")

ar1 = np.ones((2, 5)).reshape(5, 2) # 方式2

print(ar1)

print("")

ar1 = np.reshape(np.arange(9), (3,3)) # 方式3

print(ar1)

[0 1 2 3 4 5 6 7 8 9]

[[0 1]

[2 3]

[4 5]

[6 7]

[8 9]]

[[ 1. 1. 1. 1. 1.]

[ 1. 1. 1. 1. 1.]]

[[ 1. 1.]

[ 1. 1.]

[ 1. 1.]

[ 1. 1.]

[ 1. 1.]]

[[0 1 2]

[3 4 5]

[6 7 8]]

# T 數組轉置

ar2 = np.zeros((2, 5))

print(ar2)

print("")

print(ar2.T)

[[ 0. 0. 0. 0. 0.]

[ 0. 0. 0. 0. 0.]]

[[ 0. 0.]

[ 0. 0.]

[ 0. 0.]

[ 0. 0.]

[ 0. 0.]]

# resize跟reshape類似 區別是當改變數組維度時不會因數據量的不同而報錯

ar3 = np.reshape(np.arange(15), (3, 5))

print(ar3)

print("")

ar4 = np.resize(ar3, (5, 3))

print(ar4)

print("")

ar5 = np.resize(ar3, (3, 4)) # 當改變后的數組需要的數據量比原數組的數據量少時 會依次排序 多余的數值不會顯示

print(ar5)

print("")

ar6 = np.resize(ar3, (4, 5)) # 當改變后的數組需要的數據量比原數組的數據量多時 不足的會補充排序

print(ar6)

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]]

[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]

[ 9 10 11]

[12 13 14]]

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[ 0 1 2 3 4]]

# np.resize(a, shape) 有返回值 不會改變原數組

ar7 = np.arange(10)

print(ar7)

print("")

ar8 = np.resize(ar7, (2, 5))

print(ar8)

print("")

print(ar7)

[0 1 2 3 4 5 6 7 8 9]

[[0 1 2 3 4]

[5 6 7 8 9]]

[0 1 2 3 4 5 6 7 8 9]

# a.resize(shape) 沒有返回值 直接改變原數組

ar7 = np.arange(10)

print(ar7)

print("")

ar8 = ar7.resize(2, 5) # 注意ar8為None 因為是改變原數組 所以沒有返回值

print(ar8)

print("")

print(ar7)

[0 1 2 3 4 5 6 7 8 9]

None

[[0 1 2 3 4]

[5 6 7 8 9]]

# 數據類型轉換 astype

ar9 = np.arange(10, dtype=np.float64)

print(ar9)

print(ar9.dtype) # 查看數值類型

print("")

ar10 = ar9.astype(np.int64) # 改變數值類型

print(ar10)

print(ar10.dtype)

[ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

float64

[0 1 2 3 4 5 6 7 8 9]

int64

# 數組堆疊

# hstack vstack

a = np.arange(10)

print(a)

print("")

b= np.arange(10, 20)

print(b)

print("")

c = np.hstack((a, b)) # hstack表示橫向連接

print(c)

print("")

d = np.vstack((a, b)) # vstack表示縱向連接

print(d)

print("")

[0 1 2 3 4 5 6 7 8 9]

[10 11 12 13 14 15 16 17 18 19]

[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]

[[ 0 1 2 3 4 5 6 7 8 9]

[10 11 12 13 14 15 16 17 18 19]]

[[ 0 1 2 3 4 5 6 7 8 9]

[10 11 12 13 14 15 16 17 18 19]]

# stack

print(a)

print("")

print(b)

print("")

e = np.stack((a, b), axis=0) # axis=0 橫向看(縱向連接)

print(e)

print("")

e = np.stack((a, b), axis=1) # 縱向看(橫向連接)

print(e)

[0 1 2 3 4 5 6 7 8 9]

[10 11 12 13 14 15 16 17 18 19]

[[ 0 1 2 3 4 5 6 7 8 9]

[10 11 12 13 14 15 16 17 18 19]]

[[ 0 10]

[ 1 11]

[ 2 12]

[ 3 13]

[ 4 14]

[ 5 15]

[ 6 16]

[ 7 17]

[ 8 18]

[ 9 19]]

# 數組拆分

a = np.arange(16).reshape(4, 4)

print(a)

print("")

b = np.hsplit(a, 2) # 按列來切割

print(b)

print("")

c = np.vsplit(a, 2) # 按行來切割

print(c)

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]

[12 13 14 15]]

[array([[ 0, 1],

[ 4, 5],

[ 8, 9],

[12, 13]]), array([[ 2, 3],

[ 6, 7],

[10, 11],

[14, 15]])]

[array([[0, 1, 2, 3],

[4, 5, 6, 7]]), array([[ 8, 9, 10, 11],

[12, 13, 14, 15]])]

# 求和 sum

a = np.arange(10).reshape(2, 5)

print(a)

print("")

print(np.sum(a, axis=0)) # 0代表橫軸

print("")

print(np.sum(a, axis=1)) # 1代表縱軸

[[0 1 2 3 4]

[5 6 7 8 9]]

[ 5 7 9 11 13]

[10 35]

# 排序 sort

print(np.sort(np.array([3, 5, 5, 3, 1, 4])))

[1 3 3 4 5 5]

Numpy基本索引和切片

import numpy as np

# 一維數組

arr = np.array(range(10))

print(arr)

print("")

print(arr[4])

print(arr[:3])

print(arr[::2])

[0 1 2 3 4 5 6 7 8 9]

4

[0 1 2]

[0 2 4 6 8]

# 二維數組

arr = np.arange(20).reshape(4, 5)

print(arr)

print("")

print(arr[2]) # 取出某一行

print("")

print(arr[2][2]) # 取出某一個數

print("")

print(arr[1:3]) # 取出多行

print("")

print(arr[2, 2]) # 逗號前代表行 逗號后代表列

print("")

print(arr[:2, 1:3]) # 取出多行多列

[[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]

[15 16 17 18 19]]

[10 11 12 13 14]

12

[[ 5 6 7 8 9]

[10 11 12 13 14]]

12

[[1 2]

[6 7]]

# 三維數組

arr = np.arange(48).reshape(3,4,4) # 3個4行4列的數組

print(arr)

print("*"*30)

print(arr[2])

print("*"*30)

print(arr[2][1])

print("*"*30)

print(arr[2][1][1])

[[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]

[12 13 14 15]]

[[16 17 18 19]

[20 21 22 23]

[24 25 26 27]

[28 29 30 31]]

[[32 33 34 35]

[36 37 38 39]

[40 41 42 43]

[44 45 46 47]]]

[[32 33 34 35]

[36 37 38 39]

[40 41 42 43]

[44 45 46 47]]

[36 37 38 39]

37

Numpy布爾型索引及切片

# 用布爾型索引去做篩選

arr = np.arange(12).reshape(3, 4)

print(arr)

print("")

a = np.array([True, False, True])

print(a)

print("")

b = np.array([True, False, False, True])

print(b)

print("")

print(arr[a, :])

print("")

print(arr[:, b])

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[ True False True]

[ True False False True]

[[ 0 1 2 3]

[ 8 9 10 11]]

[[ 0 3]

[ 4 7]

[ 8 11]]

# 用布爾型矩陣去做篩選

print(arr)

print("")

m = arr>5

print(m)

print("")

n = arr[arr>5]

print(n)

[[ 0 1 2 3]

[ 4 5 6 7]

[ 8 9 10 11]]

[[False False False False]

[False False True True]

[ True True True True]]

[ 6 7 8 9 10 11]

Numpy隨機數生成

import numpy as np

# random.normal 正態分布隨機數

print(np.random.normal(size=(4, 4))) # 生成一個4行4列的正態分布隨機數

[[ 1.01645652 -0.30952914 -0.40576099 -0.94259139]

[-0.16483869 0.42278586 0.8260384 -0.88469832]

[ 1.31487466 -0.86188981 -0.71485117 -2.12449215]

[-1.80353888 -0.93264659 -1.1424078 0.31905742]]

# random.rand 平均分布 隨機生成 [0-1) 之間的數

a = np.random.rand() # 生成一個數

print(a)

print("")

b = np.random.rand(4) # 生成4個數

print(b)

print("")

c = np.random.rand(2,4) # 生成二維數組

print(c)

0.11426452609434679

[ 0.79633633 0.32467913 0.28038512 0.56304155]

[[ 0.06561635 0.40454132 0.58158716 0.73527881]

[ 0.59301023 0.74935326 0.24347665 0.59653582]]

# np.random.randint 在自定義的范圍內隨機生成整數

a = np.random.randint(3) # 在 [0-3)的范圍內隨機生成一個整數

print(a)

print("")

b = np.random.randint(2, 10) # [2-10)的范圍內隨機生成一個整數

print(b)

print("")

c = np.random.randint(20, size=10) # 生成一個 [0-20) 之間 有10個整數元素的一維數組

print(c)

print("")

d = np.random.randint(20, 40, size=10) # 生成一個 [20-40) 之間 有10個整數元素的一維數組

print(d)

print("")

e = np.random.randint(40, 50, size=(2, 5)) # 生成一個 [40-50) 之間 有2行5列元素的二維數組

print(e)

0

6

[ 9 11 5 12 19 4 19 1 7 10]

[24 20 34 38 37 24 26 35 35 30]

[[49 42 42 44 49]

[44 44 40 49 45]]返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的python之numpy基础_Python知识普及:Numpy基础操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。