保留初心起惕,砥礪前行
-
reshape
函數(shù):
顧名思義涡贱,將原有的數(shù)組重新整形,變成參數(shù)中指定的形狀惹想。
import numpy as np
a = np.arange(1, 20, 2)
print a.reshape(2, 5)
print a.reshape(2, 1, 5)
[[ 1 3 5 7 9]
[11 13 15 17 19]]
[[[ 1 3 5 7 9]]
[[11 13 15 17 19]]]
如下代碼所示问词,在reshape成三維數(shù)組時,第一個參數(shù)m控制將所有數(shù)據(jù)劃分為m部分嘀粱,第二個參數(shù)n控制將每一塊數(shù)據(jù)分別劃分為n部分激挪,最后一個參數(shù)x,表示每一個小塊有x列草穆。
import numpy as np
a = np.arange(1, 21)
print a.reshape(2, 2, 5)
[[[ 1 2 3 4 5]
[ 6 7 8 9 10]]
[[11 12 13 14 15]
[16 17 18 19 20]]]
tip:在終端輸出數(shù)據(jù)時灌灾,有時數(shù)據(jù)會很長,NumPy會自動將數(shù)據(jù)的中間部分變成省略號顯示悲柱。如下:
[[ 0 1 2 ..., 97 98 99]
[ 100 101 102 ..., 197 198 199]
[ 200 201 202 ..., 297 298 299]
...,
[9700 9701 9702 ..., 9797 9798 9799]
[9800 9801 9802 ..., 9897 9898 9899]
[9900 9901 9902 ..., 9997 9998 9999]]
為了顯示出全部數(shù)據(jù)锋喜,可以添加如下代碼:
np.set_printoptions(threshold='nan')
-
dot
函數(shù):
數(shù)組間存在簡單的加減乘法,對于乘法豌鸡,我們都知道矩陣的乘法并不是普通的對應(yīng)相乘嘿般,而使用*
符號產(chǎn)生的是對應(yīng)位置相乘的結(jié)果。如果想得到矩陣相乘的結(jié)果涯冠,需要使用dot
函數(shù)炉奴,如下代碼所示:
import numpy as np
a = np.array([[1, 2], [2, 3]])
b = np.array([[2, 2], [3, 3]])
print a * b
[[2 4]
[6 9]]
print np.dot(a, b)
[[ 8 8]
[13 13]]
-
flat
:
在遍歷一維數(shù)組時,直接使用下邊索引可以一次性遍歷蛇更,然而當(dāng)維數(shù)增加瞻赶,遍歷下標(biāo)其實(shí)遍歷的是某一維度上的數(shù)組赛糟。例如三維數(shù)組,無法直接遍歷到每一個元素砸逊。如果想直接遍歷到每一個元素璧南,可以使用flat
(可以理解為要使用到數(shù)組中每一個“公寓(flat)中的元素”),如下所示:
import numpy as np
b = np.array([[[2, 2], [3, 3]], [[2, 2], [3, 3]]])
for _ in b:
print _
[[2 2]
[3 3]]
[[2 2]
[3 3]]
for _ in b.flat:
print _
2
2
3
3
2
2
3
3
相關(guān)鏈接:NumPy(1)簡介师逸,基礎(chǔ)屬性司倚,數(shù)組創(chuàng)建(ones,zeros篓像,empty动知,arange,linespace)
相關(guān)鏈接:NumPy(3)full员辩,eye盒粮,empty,random