numpy 索引array的騷操作

2021-08-04 07:36:28 字數 877 閱讀 8826

最近在學習theano,然後在logisticregression中看到這麼行**:

def negative_log_likelihood(self, y):

return -t.mean(t.log(self.p_y_given_x)[t.arange(y.shape[0]), y])

這是什麼操作幹嘛用的?然後我在網上找啊,找啊,找到這麼個解釋:

# note on syntax: t.arange(y.shape[0]) is a vector of integers [0,1,2,...,len(y)].

# indexing a matrix m by the two vectors [0,1,...,k], [a,b,...,k] returns the

# elements m[0,a], m[1,b], ..., m[k,k] as a vector.  here, we use this

# syntax to retrieve the log-probability of the correct labels, y.

下面舉個栗子解釋一下:

a=[[0,1],[2,3]]

b=[1,0]

c=[0,1]

那麼a[b,c]就會返回[2,1],即是[a[1][0],a[0][1]]。

不過要注意python中一般的list並不提供這種操作,必須numpy庫中的array才能使用該操作

演示一下:

import numpy

a=numpy.array([[1,2,3],[3,4,5],[5,6,7]])

b=numpy.arange(3)

c=numpy.arange(3)

print(a[b,c])

numpy 獲取array中陣列元素的索引位置

原 numpy 獲取array中陣列元素的索引 2017年08月05日 10 36 59 1.函式原型 argwhere array 找到非空陣列array在滿足某些條件下的索引,返回索引陣列。2.應用 2.1 一維陣列 返回乙個一維陣列,代表當前滿足條件的元素出現的位置。python view p...

Numpy的array的布林型索引與賦值

names np.array bob joe will haha data np.randn 2,2 1 可使用names bob 來判斷array中的值是否與bob相同 names bob array true,false,false,false dtype bool 2 可使用names bob...

pandas中關於accessor的騷操作

來自 python那些事 pandas中accessor功能很強大,可以將它理解為一種屬性介面,通過它獲得額外的方法。下面用 和例項理解一下 import pandas as pd pd.series.accessors 對於series資料結構使用 accessors方法,我們得到3個物件 cat...