圖解Numpy花式索引及廣播

花式索引

切片

import numpy as np
# 切片
a = np.arange(10)
print("a:{}".format(a))
print("a[2:7:2]結(jié)果:{}".format(a[2:7:2]))

結(jié)果:

a:[0 1 2 3 4 5 6 7 8 9]
a[2:7:2]結(jié)果:[2 4 6]

解析:
1.索引范圍是2到7(不包含7)

image.png

2.切片步長是2
image.png

3.最終結(jié)果:
image.png

import numpy as np
# 切片
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = a[1:3, 0:2]
print("a:{}".format(a))
print("b:{}".format(b))

結(jié)果:

a:[[1 2 3]
 [4 5 6]
 [7 8 9]]
b:[[4 5]
 [7 8]]

解析:


image.png

索引

import numpy as np
# 索引
a = np.arange(10, 20)
print("a:{}".format(a))
print("a[[1, 3, 6, 8]]結(jié)果:{}".format(a[[1, 3, 6, 8]]))

結(jié)果:

a:[10 11 12 13 14 15 16 17 18 19]
a[[1, 3, 6, 8]]結(jié)果:[11 13 16 18]

解析:
1.逐個索引取數(shù)據(jù)


image.png

2.最終結(jié)果:


image.png

高級索引

import numpy as np
# 高級索引
x = np.array([[1, 2], [3, 4], [5, 6]])
y = x[[0, 2, 0], [0, 1, 1]]
print("x:{}".format(x))
print("y:{}".format(y))

結(jié)果:

x:[[1 2]
 [3 4]
 [5 6]]
y:[1 6 2]

解析:
1.按照索引值定位子元素


image.png

2.在上一步的基礎(chǔ)上進一步定位


image.png

3.最終結(jié)果:


image.png
import numpy as np
# 高級索引
x = np.array([[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11]])
print('我們的數(shù)組x:')
print(x)
print('\n')
rows = [[0, 0], [3, 3]]
cols = [[0, 2], [0, 2]]
y = x[rows, cols]
print('這個數(shù)組的四個角元素是:')
print(y)

結(jié)果:

我們的數(shù)組x:
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]]


這個數(shù)組的四個角元素是:
[[ 0  2]
 [ 9 11]]

1.按索引位逐個取值


image.png

2.最終結(jié)果:


image.png

廣播

import numpy as np
#廣播
a = np.array([[0, 0, 0],
              [10, 10, 10],
              [20, 20, 20],
              [30, 30, 30]])
b = np.array([1, 2, 3])
print(a + b)

結(jié)果:

[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

解析:

image.png

廣播的規(guī)則:
1.讓所有輸入數(shù)組都向其中形狀最長的數(shù)組看齊,形狀中不足的部分都通過在前面加 1 補齊梅猿。
2.輸出數(shù)組的形狀是輸入數(shù)組形狀的各個維度上的最大值砂轻。
3.如果輸入數(shù)組的某個維度和輸出數(shù)組的對應維度的長度相同或者其長度為 1 時械荷,這個數(shù)組能夠用來計算,否則出錯。
4.當輸入數(shù)組的某個維度的長度為 1 時,沿著此維度運算時都用此維度上的第一組值。
簡單理解:
對兩個數(shù)組铐望,分別比較他們的每一個維度(若其中一個數(shù)組沒有當前維度則忽略),滿足:

1.數(shù)組擁有相同形狀茂附。
2.當前維度的值相等正蛙。
3.當前維度的值有一個是 1。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末营曼,一起剝皮案震驚了整個濱河市乒验,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌溶推,老刑警劉巖徊件,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蒜危,居然都是意外死亡虱痕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門辐赞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來部翘,“玉大人,你說我怎么就攤上這事响委⌒滤迹” “怎么了窖梁?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夹囚。 經(jīng)常有香客問我纵刘,道長,這世上最難降的妖魔是什么荸哟? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任假哎,我火速辦了婚禮,結(jié)果婚禮上鞍历,老公的妹妹穿的比我還像新娘舵抹。我一直安慰自己,他們只是感情好劣砍,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布惧蛹。 她就那樣靜靜地躺著,像睡著了一般刑枝。 火紅的嫁衣襯著肌膚如雪香嗓。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天仅讽,我揣著相機與錄音陶缺,去河邊找鬼钾挟。 笑死洁灵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的掺出。 我是一名探鬼主播徽千,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼汤锨!你這毒婦竟也來了双抽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闲礼,失蹤者是張志新(化名)和其女友劉穎牍汹,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體柬泽,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡慎菲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了锨并。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片露该。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖第煮,靈堂內(nèi)的尸體忽然破棺而出解幼,到底是詐尸還是另有隱情抑党,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布撵摆,位于F島的核電站底靠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏特铝。R本人自食惡果不足惜苛骨,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望苟呐。 院中可真熱鬧痒芝,春花似錦、人聲如沸牵素。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽笆呆。三九已至请琳,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赠幕,已是汗流浹背俄精。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留榕堰,地道東北人竖慧。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像逆屡,于是被迫代替她去往敵國和親圾旨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容