numpy之meshgrid和where

meshgrid

np.meshgrid()

np.meshgrid從坐標(biāo)向量返回坐標(biāo)矩陣辆苔。

這樣說可能很抽象述吸。舉個(gè)例子忿族。


x = np.arange(-2,2)
y = np.arange(0,3)#生成一位數(shù)組,其實(shí)也就是向量

x
Out[31]: array([-2, -1,  0,  1])

y
Out[32]: array([0, 1, 2])

z,s = np.meshgrid(x,y)#將兩個(gè)一維數(shù)組變?yōu)槎S矩陣

z
Out[36]: 
array([[-2, -1,  0,  1],
       [-2, -1,  0,  1],
       [-2, -1,  0,  1]])

s
Out[37]: 
array([[0, 0, 0, 0],
       [1, 1, 1, 1],
       [2, 2, 2, 2]])

從代碼上看蝌矛,我們得到了這樣一組值:

-2道批, -1, 0入撒, 1隆豹,---- 0, 0茅逮, 0璃赡, 0
-2, -1献雅, 0碉考, 1,---- 1挺身, 1豆励, 1, 1

也就是說瞒渠,它將 x 變成了矩陣 z 的行向量,y 變成了矩陣 s 的列向量技扼。

反過來伍玖,也是一樣的:

z,s = np.meshgrid(y,x)

z
Out[40]: 
array([[0, 1, 2],
       [0, 1, 2],
       [0, 1, 2],
       [0, 1, 2]])

s
Out[41]: 
array([[-2, -2, -2],
       [-1, -1, -1],
       [ 0,  0,  0],
       [ 1,  1,  1]])

以上面這個(gè)例子來說,z 和 s 就構(gòu)成了一個(gè)坐標(biāo)矩陣剿吻,實(shí)際上也就是一個(gè)網(wǎng)格窍箍,不知道你沒有注意到,z 和 s 的維數(shù)是一樣的丽旅,是一個(gè)4 × 4的網(wǎng)格矩陣椰棘,也就是坐標(biāo)矩陣。

meshgrid 方法的參數(shù)數(shù)量不受限榄笙,可以得到任意 N 維空間中的坐標(biāo)矩陣邪狞。

注意到,傳入的對(duì)象是一維的茅撞。

想到這里帆卓,我覺得巨朦,這可能和方程式有關(guān)系(很可能我的感覺是錯(cuò)的,等以后發(fā)現(xiàn)再改這句話剑令,但是我覺得這樣的話糊啡,會(huì)很好理解這個(gè)函數(shù)方法),也就是行列式吁津,但是方程式的右側(cè)的 y 只有一列棚蓄。

a1x1 + b1x2 + c1x3 + d1x4 + ...... =y1
a2x1 + b2x2 + c2x3 + d2x4 + ...... =y2
...
...


x, y = np.meshgrid(np.arange(-1, 1, 0.01), np.arange(-1, 1, 0.01))

contor = np.sqrt(x ** 2 + y ** 2)
plt.imshow(contor)
plt.colorbar()
plt.show()

結(jié)果

np.where()

where(condition, [x, y]) 當(dāng)condition為True時(shí),返回 x 碍脏, 否則返回 y梭依。

其實(shí),在x, y 為一維數(shù)組時(shí)潮酒,就相當(dāng)于:

[xv if c else yv for (c,xv,yv) in zip(condition,x,y)]

測試:


In [3]: x = np.arange(9).reshape(3,3)#創(chuàng)建一個(gè)3×3的矩陣

In [4]: x
Out[4]:
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])

In [5]: np.where(x>4) #只輸入condition
Out[5]: (array([1, 2, 2, 2], dtype=int64), array([2, 0, 1, 2], dtype=int64))

In [6]: np.where(x>7)# 只輸入condition
Out[6]: (array([2], dtype=int64), array([2], dtype=int64))

通過上面的例子睛挚,我們可以發(fā)現(xiàn),只輸入condition的話急黎,得到的結(jié)果是一個(gè)位置索引扎狱。它們就是滿足條件的元素的索引,即為True的元素勃教。

說明下:返回的第一個(gè)第一個(gè)數(shù)組為行坐標(biāo)淤击,第二個(gè)為縱坐標(biāo)。

我們還可以用where來這樣做:


In [8]: y = np.random.randn(3,3)

In [9]: y
Out[9]:
array([[ 1.59809956, -0.42735851,  1.46593089],
       [-0.26497622,  0.53948157, -2.01569974],
       [-0.11099139, -1.70616601, -1.34821361]])

In [10]: np.where(y > 0, 4, -4)
Out[10]:
array([[ 4, -4,  4],
       [-4,  4, -4],
       [-4, -4, -4]])

很顯然故源,np.where()是可以嵌套使用的污抬,其類似于if..elif...else...,如果我們有多個(gè)條件的話绳军。

大家都知道印机,布爾值在計(jì)算過程中是可以當(dāng)做0和1處理的。
因此门驾,我們還可以這樣:

result = 3 * (con2 & -cond1) + 2 * - (cond1 | cond2)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末射赛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子奶是,更是在濱河造成了極大的恐慌楣责,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,311評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件聂沙,死亡現(xiàn)場離奇詭異秆麸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)及汉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門沮趣,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人坷随,你說我怎么就攤上這事兔毒÷辏” “怎么了?”我有些...
    開封第一講書人閱讀 152,671評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵育叁,是天一觀的道長迅脐。 經(jīng)常有香客問我,道長豪嗽,這世上最難降的妖魔是什么谴蔑? 我笑而不...
    開封第一講書人閱讀 55,252評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮龟梦,結(jié)果婚禮上隐锭,老公的妹妹穿的比我還像新娘。我一直安慰自己计贰,他們只是感情好钦睡,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,253評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著躁倒,像睡著了一般荞怒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上秧秉,一...
    開封第一講書人閱讀 49,031評(píng)論 1 285
  • 那天褐桌,我揣著相機(jī)與錄音,去河邊找鬼象迎。 笑死荧嵌,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的砾淌。 我是一名探鬼主播啦撮,決...
    沈念sama閱讀 38,340評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼汪厨!你這毒婦竟也來了赃春?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,973評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤骄崩,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后薄辅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體要拂,經(jīng)...
    沈念sama閱讀 43,466評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,937評(píng)論 2 323
  • 正文 我和宋清朗相戀三年站楚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脱惰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,039評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡窿春,死狀恐怖拉一,靈堂內(nèi)的尸體忽然破棺而出采盒,到底是詐尸還是另有隱情,我是刑警寧澤蔚润,帶...
    沈念sama閱讀 33,701評(píng)論 4 323
  • 正文 年R本政府宣布磅氨,位于F島的核電站,受9級(jí)特大地震影響嫡纠,放射性物質(zhì)發(fā)生泄漏烦租。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,254評(píng)論 3 307
  • 文/蒙蒙 一除盏、第九天 我趴在偏房一處隱蔽的房頂上張望叉橱。 院中可真熱鬧,春花似錦者蠕、人聲如沸窃祝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粪小。三九已至,卻和暖如春泻仙,著一層夾襖步出監(jiān)牢的瞬間糕再,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來泰國打工玉转, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留突想,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,497評(píng)論 2 354
  • 正文 我出身青樓究抓,卻偏偏與公主長得像猾担,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子刺下,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,786評(píng)論 2 345

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