簡體   English   中英

用一行迭代 numpy 數組中的行

[英]Iterating through rows in numpy array with one row

對於二維 numpy 數組A , A 中的循環將遍歷for a in A A行。 這個功能是我想要的代碼,但我在A只有一行的邊緣情況下遇到了困難(即,本質上是一個一維數組)。 在這種情況下, for循環將A視為一維數組並遍歷其元素。 在這種情況下,我希望發生的是 2D 情況的自然擴展,其中循環檢索A中的(單)行。 有沒有辦法格式化數組A使得for循環像這樣運行?

我認為您可以使用np.expand_dims來實現您的目標

X = np.expand_dims(X, axis=0)

根據您是否自己聲明數組,您可以執行以下操作:

A = np.array([[1, 2, 3]])

否則,您可以在迭代之前檢查數組的dim

B = np.array([1, 2, 3])
if B.ndim == 1:
    B = B[None, :]

或者您可以使用 function np.at_least2d

C = np.array([1, 2, 3])
C = np.atleast_2d(C)

如果你的數組真的是一個二維數組,即使只有一行,也沒有邊緣情況:

import numpy
a = numpy.array([[1, 2, 3]]) 
for line in a:
    print(line)

>>> [1 2 3]

您似乎很困惑numpy.array([[1, 2, 3]])是一個二維數組,它是一個二維數組,而numpy.array([1, 2, 3])是一個一維數組。

暫無
暫無

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

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