2
我移植一些代碼從r到蟒蛇開始(注:R中列出在第1,第0不元素開始),而是不斷變化的每一個地方我訪問數組我想創建一個子類numpy.array的,這樣,例如,下面的代碼蟒蛇:改變numpy.array訪問方法在1而不是0
import numpy
class array_starting_at_one(numpy.array):
???
def myfunc(A):
print A[1,1,1]
print A[1:3,1,:]
A = array_starting_at_one([[[1, 2, 3], [4, 5, 6]], [[11, 12, 13], [14, 15, 16]]])
myfunc(A)
輸出
1
[[ 1 2 3]
[11 12 13]]
任何人都知道如何在填寫???在上面的代碼?
您可以在子類中覆蓋['__getitem__'](https://docs.python.org/2/reference/datamodel.html#object.__getitem__) – slezica 2014-10-06 18:42:12
您可以這樣做,但我會建議您不要。 1)它可能會涉及更多的視圖投射比你想要的。 2)從長遠來看,它很可能會比只是想保持兩種語言的索引約定直接在您的HEA更加混亂 - 特別是如果你打算與其他的工作誰使用NumPy的頻繁。 (請注意,我來自一個Fortran背景,其中指數從1開始爲好,很短的時間量之後,分歧沒什麼大不了的......) – mgilson 2014-10-06 18:42:22
附:我知道ř解釋1:3作爲[1,2,3]代替[1,2](如蟒一樣),但我,衝前方稍微愚蠢,已經轉換的所有這些範圍的苦心方式。 – AndyP 2014-10-06 18:51:15