numpy小技巧

問(wèn)題1: 選取二維數(shù)組中的若干行與列的交叉點(diǎn)

例如:

import numpy as np

a = np.arange(20).reshape((5,4))
# array([[ 0,  1,  2,  3],
#        [ 4,  5,  6,  7],
#        [ 8,  9, 10, 11],
#        [12, 13, 14, 15],
#        [16, 17, 18, 19]])
# select certain rows(0, 1, 3) AND certain columns(0, 2)

解答見(jiàn) https://stackoverflow.com/questions/22927181/selecting-specific-rows-and-columns-from-numpy-array

Using ix_ one can quickly construct index arrays that will index the cross product. a[np.ix_([1,3],[2,5])] returns the array [[a[1,2] a[1,5]], [a[3,2] a[3,5]]].

>>> a = np.arange(20).reshape((5,4))
>>> a[np.ix_([0,1,3], [0,2])]
array([[ 0,  2],
       [ 4,  6],
       [12, 14]])

問(wèn)題2: One Hot encodings

所謂'One Hot encodings', 是將多類(lèi)問(wèn)題的向量變化為0-1矩陣:


image.png

定義以下函數(shù)即可:

import numpy as np
def convert_to_one_hot(Y, C):
    """
    Y是一個(gè)numpy.array, C是分類(lèi)的種數(shù)
    """
    Y = np.eye(C)[Y.reshape(-1)].T
    return Y

y = np.array([[1, 2, 3, 0, 2, 1]])
print(y.shape)
print(y.reshape(-1).shape)
C = 4
print(convert_to_one_hot(y, C))

np.eye(C)是構(gòu)造一個(gè)對(duì)角線為1的對(duì)角矩陣, Y.reshape(-1)把Y壓縮成向量[numpy中向量shape是(n,), 矩陣shape是(1, n)],np.eye(C)[Y.reshape(-1)]的意思是取對(duì)角矩陣的相應(yīng)行, 最后.T做轉(zhuǎn)置, 就獲得了下面的結(jié)果:

(1, 6)
(6,)
[[ 0.  0.  0.  1.  0.  0.]
 [ 1.  0.  0.  0.  0.  1.]
 [ 0.  1.  0.  0.  1.  0.]
 [ 0.  0.  1.  0.  0.  0.]]

參考文獻(xiàn)
[1] https://stackoverflow.com/questions/22927181/selecting-specific-rows-and-columns-from-numpy-array
[2] https://docs.scipy.org/doc/numpy-1.13.0/user/basics.indexing.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先決條件 在閱讀這個(gè)教程之前,你多少需要知道點(diǎn)python。如果你想從新回憶下,請(qǐng)看看Python Tutoria...
    舒map閱讀 2,744評(píng)論 1 13
  • NumPy是Python中關(guān)于科學(xué)計(jì)算的一個(gè)類(lèi)庫(kù),在這里簡(jiǎn)單介紹一下。 來(lái)源:https://docs.scipy...
    灰太狼_black閱讀 1,333評(píng)論 0 5
  • 來(lái)源:NumPy Tutorial - TutorialsPoint 譯者:飛龍 協(xié)議:CC BY-NC-SA 4...
    布客飛龍閱讀 33,572評(píng)論 6 97
  • 湯之《盤(pán)銘》曰:“茍日新,日日新,又日新。”《康誥》曰:“作新民”。《詩(shī)》曰:“周雖舊邦,其命惟新?!笔?..
    錢(qián)江潮369閱讀 476評(píng)論 0 1
  • 熊,上圖是我想送給你的話。當(dāng)然,也同樣送給你們~ 這次,我講述的是一個(gè)我剛認(rèn)識(shí)一個(gè)月的男生。 他叫熊。 我認(rèn)為對(duì)于...
    __Diana__閱讀 719評(píng)論 0 1

友情鏈接更多精彩內(nèi)容