簡體   English   中英

關於python中的numpy矩陣的簡單問題

[英]Simple question about numpy matrix in python

假設我有一個名為MATRIX的numpy矩陣變量,具有3個坐標:(x,y,z)。

通過以下代碼訪問矩陣的值

myVar = MATRIX[0,0,0]

等於

myVar = MATRIX[0,0][0]

要么

myVar = MATRIX[0][0,0]

如果我有以下代碼怎么辦?

myTuple = (0,0)
myScalar = 0
myVar = MATRIX[myTuple, myScalar]

最后一行等於

myVar = MATRIX[myTuple[0], myTuple[1], myScalar]

我已經完成了簡單的測試,似乎是這樣,但也許並非在所有情況下都如此。 方括號如何在帶有numpy矩陣的python中工作? 從第一天開始,我對它們的工作方式感到困惑。

謝謝

我假設您有一個array實例,而不是一個matrix ,因為后者只能具有兩個維度。

m[0, 0, 0]獲取元素在位置(0,0,0)。 m[0, 0]得到一個整個子array (一個切片),它本身就是一個array 您可以像下面這樣子數組的第一個元素: m[0, 0][0] ,這就是為什么兩種語法都可以工作的原因(盡管首選m[i, j, k]是因為它沒有不必要的中間變量)步)。

看一下這個ipython會話:

rbonvall@andy:~$ ipython
Python 2.5.4 (r254:67916, Sep 26 2009, 08:19:36) 
[...]

In [1]: import numpy.random

In [2]: m = numpy.random.random(size=(3, 3, 3))

In [3]: m
Out[3]: 
array([[[ 0.68853531,  0.8815277 ,  0.53613676],
        [ 0.9985735 ,  0.56409085,  0.03887982],
        [ 0.12083102,  0.0301229 ,  0.51331851]],

       [[ 0.73868543,  0.24904349,  0.24035031],
        [ 0.15458694,  0.35570177,  0.22097202],
        [ 0.81639051,  0.55742805,  0.5866573 ]],

       [[ 0.90302482,  0.29878548,  0.90705737],
        [ 0.68582033,  0.1988247 ,  0.9308886 ],
        [ 0.88956484,  0.25112987,  0.69732309]]])

In [4]: m[0, 0]
Out[4]: array([ 0.68853531,  0.8815277 ,  0.53613676])

In [5]: m[0, 0][0]
Out[5]: 0.6885353066709865

它僅對numpy array像這樣工作。 Python內置的元組和列表不能由元組索引,而只能由整數索引。

無法用另一個元組索引一個元組,因此該代碼均無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM