numpy 矩阵与向量相乘_有人把NumPy画成了花,生动又形象
發(fā)現(xiàn)有很多想要學(xué)習(xí)Python卻不知道如何下手的朋友,我這里整理了一些關(guān)于Python的學(xué)習(xí)資料,從基礎(chǔ)到入門到實(shí)戰(zhàn)都有!有需要的朋友可以關(guān)注并私信“01”免費(fèi)獲取...
創(chuàng)建數(shù)組
我們可以創(chuàng)建一個(gè)NumPy數(shù)組(也就是強(qiáng)大的ndarray),方法是傳遞一個(gè)python列表并使用' np.array() '。在本例中,python創(chuàng)建了我們可以在這里看到的數(shù)組:
通常情況下,我們希望NumPy為我們初始化數(shù)組的值。NumPy為這些情況提供了像ones()、zeros()和random.random()這樣的方法。我們只是把我們想要生成的元素的數(shù)量傳遞給他們:
一旦我們創(chuàng)建了數(shù)組,我們就可以開始以有趣的方式操作它們。
數(shù)組運(yùn)算
讓我們創(chuàng)建兩個(gè)NumPy數(shù)組來展示它們的用處。我們稱它們?yōu)閐ata和ones:
將它們按位置相加(即添加每一行的值)就像輸入data + ones一樣簡單:
當(dāng)我開始學(xué)習(xí)這些工具時(shí),我發(fā)現(xiàn)這樣的抽象使我不必在循環(huán)中編寫這樣的計(jì)算程序,這讓我耳目一新。這是一個(gè)很好的抽象概念,可以讓你在更高的層次上思考問題。
我們還可以這樣做:
通常情況下,我們希望在數(shù)組和單個(gè)數(shù)字之間執(zhí)行操作(我們也可以將此稱為向量和標(biāo)量之間的操作)。例如,我們的數(shù)組以英里為單位表示距離,我們想把它轉(zhuǎn)換成千米。我們簡單地說data* 1.6:
看到NumPy是如何理解這個(gè)操作的了嗎?這個(gè)概念叫做廣播,它非常有用。
索引
我們可以索引和切片NumPy數(shù)組的所有方法,我們可以切片python列表:
聚合
NumPy給我們的額外好處是聚合功能:
除了最小值,最大值,和求和,你還可以使用其他的聚合函數(shù),比如mean得到平均值,prod得到所有元素相乘的結(jié)果,std得到標(biāo)準(zhǔn)差,還有很多其他的。
更高的維度
我們看過的所有例子都是關(guān)于一維向量的。NumPy一個(gè)關(guān)鍵的部分是它能夠?qū)⑽覀兡壳翱吹降乃袃?nèi)容應(yīng)用到任意數(shù)量的維度。
創(chuàng)建矩陣
我們可以傳遞python列表的列表的形狀如下,讓NumPy創(chuàng)建一個(gè)矩陣來表示它們:
np.array([[1,2],[3,4]])我們也可以使用上面提到的方法(ones()、zero()和random.random()),只要我們給它們一個(gè)元組來描述我們正在創(chuàng)建的矩陣的維數(shù):
矩陣運(yùn)算
如果兩個(gè)矩陣大小相同,我們可以使用算術(shù)運(yùn)算符(+-*/)對矩陣進(jìn)行加法和乘法。NumPy將這些操作作為位置操作處理:
只有當(dāng)不同維數(shù)為1時(shí)(例如,矩陣只有一列或一行),我們才可以對不同大小的矩陣執(zhí)行這些算術(shù)操作,在這種情況下,NumPy使用它的廣播規(guī)則來執(zhí)行該操作:
點(diǎn)乘
算術(shù)的一個(gè)關(guān)鍵區(qū)別是使用點(diǎn)乘和矩陣乘法。NumPy給每個(gè)矩陣一個(gè)點(diǎn)乘dot()方法,我們可以用它來執(zhí)行點(diǎn)積操作與其他矩陣:
我在這個(gè)圖的底部添加了矩陣維數(shù)來強(qiáng)調(diào)這兩個(gè)矩陣必須有相同的維數(shù)在它們彼此面對的一邊。你可以把這個(gè)操作想象成這樣:
矩陣聚合
我們可以像聚合向量一樣聚合矩陣:
我們不僅可以在矩陣中聚合所有的值,還可以使用axis參數(shù)跨行或跨列聚合:
總結(jié)
以上是生活随笔為你收集整理的numpy 矩阵与向量相乘_有人把NumPy画成了花,生动又形象的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 编写图形界面程序,接受用户输入的5个浮点
- 下一篇: 字符串和整形、浮点类型的相互转化