numpy(numerical python)是 python 語言的乙個擴充套件程式庫。其中提供了許多向量和矩陣操作,能讓使用者輕鬆完成最優化、線性代數、積分、插值、特殊函式、傅利葉變換、訊號處理和影象處理、常微分方程求解以及其他科學與工程中常用的計算,不僅方便易用而且效率更高。
numpy 是乙個開源的python科學計算基礎庫,是scipy、pandas等資料處理或科學計算庫的基礎。擁有乙個類似於列表的、強大的n維陣列物件ndarray,它描述了相同型別的元素的集合。具有實用的線性代數、傅利葉變換和隨機生成函式的功能。可以直接完成陣列和矩陣運算,無需迴圈。
1.建立乙個陣列,陣列的shape為(5,2),元素均為0。
import numpy
data=[[
0,0]
,[0,
0],[
0,0]
,[0,
0],[
0,0]
]print
(numpy.array(data)
)
2.建立乙個表示西洋棋棋盤的8*8陣列。其中,棋盤白格用0填充,棋盤黑格用1填充。
import matplotlib.pyplot as plt
import numpy as np
b1 = np.array([[
(1),
(0),
(1),
(0)]
])#構建第一行的一半
b2 = np.array([[
(0),
(1),
(0),
(1)]
])#構建第二行的一半
b3=np.vstack(
(b1,b2)
)#組合成可迴圈利用的部分
b4=np.vstack(
(b3,b3)
)#構造出棋盤的1/4
b5=np.hstack(
(b4,b4)
)#構造出棋盤的1/2
b6=np.vstack(
(b5,b5)
)#構造出完整的棋盤
plt.imshow(b6)
plt.show(
)
numpy.linalg.solve() 函式給出了矩陣形式的線性方程的解。
numpy.linalg.inv() 函式計算矩陣的乘法逆矩陣。
逆矩陣(inverse matrix):設a是數域上的乙個n階矩陣,若在相同數域上存在另乙個n階矩陣b,使得: ab=ba=e ,則我們稱b是a的逆矩陣,而a則被稱為可逆矩陣。注:e為單位矩陣。
考慮以下線性方程:
x + y + z = 6
2y + 5z = -4
2x + 5y - z = 27
可以使用矩陣表示為:
如果矩陣稱為a、x和b,方程變為:
ax = b
或x = a^(-1)b
import numpy as np
a = np.array([[
1,1,
1],[
0,2,
5],[
2,5,
-1]]
)print
('陣列 a:'
)print
(a)ainv = np.linalg.inv(a)
print
('a 的逆:'
)print
(ainv)
print
('矩陣 b:'
)b = np.array([[
6],[
-4],
[27]]
)print
(b)print
('計算:a^(-1)b:'
)x = np.linalg.solve(a,b)
print
(x)
import numpy as np
a = np.array([[
1,1,
1],[
0,2,
5],[
2,5,
-1]]
)print
('陣列 a:'
)print
(a)ainv = np.linalg.inv(a)
print
('a 的逆:'
)print
(ainv)
print
('矩陣 b:'
)b = np.array([[
6],[
-4],
[27]]
)print
(b)print
('計算:a^(-1)b:'
)x = np.linalg.solve(a, b)
print
(x)
請安裝numpy包,並建立陣列
pycharm匯入第三方庫numpy
import numpy
numpy物件常用屬性
#numpy物件常用屬性
import numpy as np
a=np.array([[
1,2,
3],[
4,5,
6]])
print
('a.ndim='
,a.ndim)
print
(a)print
(a.dtype)
print
(a.size)
b=a.reshape(3,
2)print
(b.ndim)
print
(b)print
(b.shape)
print
(b.itemsize)
建立ndarry物件
#建立ndarry物件
import numpy as np
a=np.array([1
,2,3
])print
(a)b=np.array([[
1,2]
,[3,
4]])
print
(b)c=np.array([1
,2,3
,4,5
],ndmin=2)
print
(c)d=np.array([1
,2,3
],dtype=
complex
)print
(d)
建立nmupy物件
#建立nmupy物件
import numpy as np
x=np.zeros(5)
print
(x)y=np.zeros((5
,),dtype=np.
int)
print
(y)print()
z=np.zeros((2
,2),dtype=[(
'x',
'i4'),
('y'
,'i4')]
)print
(z)
從已有的陣列來建立numpy陣列
#從已有的陣列來建立numpy陣列
import numpy as npx=[
1,2,
3]a=np.asarray(x)
print
(a)print()
y=[(1
,2,3
),(4
,5)]
b=np.asarray(y)
print
(b)
從數值範圍建立numpy陣列
#從數值範圍建立numpy陣列
import numpy as np
x=np.arange(10,
21,2)
print
(x)y=np.linspace(10,
20,5,endpoint=
false
)print
(y)z=np.logspace(0,
9,10,base=2)
print
(z)
陣列的運算
#陣列的運算
import numpy as np
a=np.array([1
,2,3
])b=np.array([3
,4,5
])print
(a+b)
print
(a/b)
print()
c=np.array([[
0],[
1],[
2],[
3]])
d=np.array([1
,2,3
])print
(c)print()
print
(d)print()
print
(c+d)
print
(c*2
)
python 9 numpy中的tile函式
np.tile a,b 即把a按照行 列重複b次 np.tile a m n 把a 在行方向上重複m次,列方向上重複n次,行可以省略,預設為1 import numpy numpy.tile 0,0 5 在列方向上重複 0,0 5次,預設行1次 array 0,0,0,0,0,0,0,0,0,0 n...
python之numpy多維陣列
1.ndarray,是具有向量算術運算且節省空間的多維陣列。2.可以用於對整組的資料快速進行運算的辨準數學函式。3.能夠用於讀寫磁碟資料的工具以及用於作業系統記憶體對映的工具。1.numpy是在乙個連續的記憶體塊中儲存資料,獨立於其他的python內建物件。2.numpy可以在整個陣列上執行複雜的計...
python使用numpy實現多維陣列的排序
1.問題描述 為實現對多維陣列按多列排序,如有三維陣列座標點 x,y,z 現需使其按照x進行公升序排序,其後使y進行公升序排序,最後為z。有4行3列陣列如下 arr 6 3 3 3 1 1 6 2 8 4 0 3 欲使其按如下排序 arrsort 3 1 1 4 0 3 6 2 8 6 3 3 2....