2

私はプログラミングに本当に慣れていないので、これが本当に簡単な質問であれば申し訳ありませんが、numpyを使用せずにマトリックスの最初の列を印刷しようとしましたが、次のように印刷されます:

matrix = \
[[0, 1],
 [3, 7],
 [9, 4],
 [10, 3]]

print matrix[0:3][0]
[0, 1] 

私も試しました:

print matrix[:][0]
[0, 1]

print matrix[:3]
[[0, 1], [3, 7], [9, 4]]

print matrix[:3][0]
[[0, 1], [3, 7], [9, 4]]

私が達成しようとしている答えは次のとおりです。

print matrix[code]
0, 3, 9, 10

または類似。

4

2 に答える 2

6

あなたが持っているのはリストのリストです。そのため、列の概念はありません。これを行うには 2 つの方法があります。1 つは ( Pavel Anossov の回答が示すように) リスト内包表記を使用することです。

1 つはzip()、 iterable の転置に使用できる which を使用することです。

>>> list(zip(*matrix))
[(0, 3, 9, 10), (1, 7, 4, 3)]

出力を表示しやすくするために、ここにリストを作成しました。2.x では、zip()反復子ではなくリストを指定することに注意してください (ただし、遅延バージョンは として使用できますitertools.izip())。

通常、zip()複数の列を使用する予定がある場合は使用し、1 つだけ必要な場合はリスト内包表記を使用します。

于 2013-04-10T22:57:38.610 に答える
3

これは、numpy なしのスライスでは不可能です。リスト内包表記を使用できます。

print [row[0] for row in matrix]
于 2013-04-10T22:56:42.193 に答える