python3 numpy基本用法歸納總結


安裝numpy : pip install numpy

numpy數組生成方法總結

In [4]:
import numpy as np

#使用列表生成一個一維數組
data = [1,2,3,4,5]
x = np.array(data)
print(x)
print(x.dtype) #打印數組類型
print(type(x))

[1 2 3 4 5]
int32
<class 'numpy.ndarray'>
In [6]:
import numpy as np

#使用列表生成一個二維數組
data = [[1,2], [3,4], [5,6]]
x = np.array(data)
print(x)
print(x.dtype)
print(x.ndim) #打印數組維度
print(x.shape) #打印數組各個維度的長度
print(type(x))

[[1 2]
[3 4]
[5 6]]
int32
2
(3, 2)
<class 'numpy.ndarray'>
In [16]:
import numpy as np

#使用zeros創建一個長度為4, 元素為0的一維數組
x = np.zeros(4)
print(x)
#創建一個二維數組, 一維長度為2, 二維長度為3, 元素為0的數組
x = np.zeros((2,3))
print(x)
#使用ones創建一個二維數組, 一維長度為2, 二維長度為3, 元素為1的數組
x = np.ones((2,3))
print(x)
#使用empty創建一個二維數組, 一維長度為3, 二維長度為3, 元素為初始化的數組
y = np.empty((3,3))
print(y)
#使用arange生成連續元素
a = np.arange(5)
print(a)
b = np.arange(1,5,2)
print(b)

[ 0.  0.  0.  0.]
[[ 0. 0. 0.]
[ 0. 0. 0.]]
[[ 1. 1. 1.]
[ 1. 1. 1.]]
[[ 2.97907948e-317 2.69387831e-316 8.66647269e-317]
[ 2.48185956e-315 2.48185956e-315 2.48185909e-315]
[ 0.00000000e+000 0.00000000e+000 6.52072824e+091]]
[0 1 2 3 4]
[1 3]

reshape用法:

In [2]:
import numpy as np

#二維數組
a = np.arange(10).reshape(2,5)
print(a)
print("\n")
#三維數組
a = np.arange(12).reshape(2,2,3)
print(a)

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

[[[ 0 1 2]
[ 3 4 5]]

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

基本運算:

數組的算術運算是按照元素的

In [9]:
import numpy as np

a = np.array([30,40,50,60])
b = np.arange(4)

print(a)
print(b)
print("\na-b:")
#倆個數據相減
c = a - b
print(c)
print("\nb2:")
#b數組二次方
print(b
2)
#比較
print("\na<45:")
print(a<45)

[30 40 50 60]
[0 1 2 3]

a-b:
[30 39 48 57]

b**2:
[0 1 4 9]

a<45:
[ True True False False]

numpy中的*是按元素計算的, 如果矩陣乘法, 需要調用dot函數

In [12]:
import numpy as np

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

b = np.array([
[1,1],
[0,4]
])

#運算
print("a
b:")
print(a*b)

#dot運算
print("\ndot(a,b):")
print(np.dot(a,b))

a*b:
[[ 1 2]
[ 0 16]]

dot(a,b):
[[ 1 9]
[ 3 19]]

axis參數用法:

In [19]:
import numpy as np

a = np.arange(12).reshape(2,2,3)
print(a)
print("計算第一維度和:")
print(a.sum(axis=0))
print("計算第二維度和:")
print(a.sum(axis=1))
print("計算第三維度和:")
print(a.sum(axis=2))

#說白了就是說計算第一維度的時候, 把2,3下標值一樣的, 第一下標值不一樣的加在一起, 重新生成一個數組, 以此類推

[[[ 0  1  2]
[ 3 4 5]]

[[ 6 7 8]
[ 9 10 11]]]
計算第一維度和:
[[ 6 8 10]
[12 14 16]]
計算第二維度和:
[[ 3 5 7]
[15 17 19]]
計算第三維度和:
[[ 3 12]
[21 30]]

In [20]:
import numpy as np

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

print(a)

print("找出第一維度的最小值:")
print(a.min(axis=0))
print("找出第二維度的最小值:")
print(a.min(axis=1))

[[ 0  1  2  3]
[ 4 5 6 7]
[ 8 9 10 11]]
找出第一維度的最小值:
[0 1 2 3]
找出第二維度的最小值:
[0 4 8]
In [21]:
import numpy as np

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

print(a)

print("計算第一維度的累加值:")
print(a.cumsum(axis=0))
print("計算第二維度的累加值:")
print(a.cumsum(axis=1))

[[ 0  1  2  3]
[ 4 5 6 7]
[ 8 9 10 11]]
計算第一維度的累加值:
[[ 0 1 2 3]
[ 4 6 8 10]
[12 15 18 21]]
計算第二維度的累加值:
[[ 0 1 3 6]
[ 4 9 15 22]
[ 8 17 27 38]]

通用函數用法:

In [22]:
import numpy as np

a = np.arange(3)
print(a)

print(np.exp2(a)) #輸出以2weidi

[0 1 2]
[ 1. 2. 4.]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM