簡體   English   中英

N維數組 - Python / Numpy

[英]N dimensional arrays - Python/Numpy

只是想知道是否有任何聰明的方法來做到以下幾點。

我有一個代表3x3網格的N維數組

grid = [[1,2,3],
        [4,5,6],
        [7,8,9]]

為了獲得第一行,我執行以下操作:

grid[0][0:3]
>> [1,2,3]

為了獲得第一列,我想做這樣的事情(盡管不可能):

grid[0:3][0]
>> [1,4,7]

NumPy是否偶然支持與此相似的任何內容?


有任何想法嗎?

是的,在Numpy中有類似的東西:

import numpy as np

grid = np.array([[1, 2, 3],
                 [4, 5, 6],
                 [7, 8, 9]])

grid[0,:]
# array([1, 2, 3])

grid[:,0]
# array([1, 4, 7])

您可以使用zip轉置表示為列表列表的矩陣:

>>> zip(*grid)[0]
(1, 4, 7)

不僅如此,我還會使用Numpy。

要獲取Python中的列,您可以使用:

[row[0] for row in grid]
>>> [1,4,7]

您可以重寫代碼以獲取行

grid[0][:]

因為[:]只復制整個數組,不需要添加索引。

但是,根據你想要實現的目標,我會說最好只寫一個小矩陣類來隱藏這個實現的東西。

暫無
暫無

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

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