質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

980閲覧

Pythonにおける繰り返し処理

Ryoya_Akechi

総合スコア1

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2020/07/13 02:42

こんにちは。当方、プログラム初心者であり、大変基礎的な質問になりますが、ご容赦ください。
Pythonにおける、for文ループを使わない繰り返し処理の方法が分からず困っております。

以下のように、Array_1にndarray型の配列が入っているような場合を想定したとき、

Array_1 = ([1,2,3]
[4,5,6]
[7,8,9]
[1,2,3])

  1. 各行の総和を求める。1行目であれば、1+2+3=6など。
  2. 1.の処理を各列(4行分)実行する。

上記の処理をfor文を使用せずに実装したいのですが、どうすればよいのでしょうか。NumPyなどを使うのか?と想定はしていますが、今いち解決策が見えない状況です。
Pythonおよび線形代数初心者であり、正確には上記の行、列といった表現も間違っていると思われ、お見苦しいですが、よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozwk

2020/07/13 02:57 編集

想定するところまでは素晴らしいので、次はその想定が正しいと仮定して調査を行ってみましょう。 「numpy 行列 和」で検索してでてきたページを読むとtiitoiさんの回答に繋がります。
guest

回答2

0

numpyを使わず、forも使わないやり方

Python

1arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]] 2 3sums = list(map(sum, arr)) 4print(sums)

投稿2020/07/13 03:16

編集2020/07/13 03:17
Daregada

総合スコア11990

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryoya_Akechi

2020/07/19 11:27

ご返信が遅れて申し訳ありません。大変失礼ながら、tiitoiさんをベストアンサーとさせていただいたのですが、Daregadaさんの意見も是非取り入れたいと考えております。 ご回答ありがとうございました!
guest

0

ベストアンサー

numpy を使わないでもできますが、numpy を使うと簡単にできます。

for を使ったやり方

python

1arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]] 2 3# for を使ったやり方 4sums = [sum(row) for row in arr] 5print(sums) 6 7# 内包記法を使わない場合 8sums = [] 9for row in arr: 10 sums.append(sum(row)) 11print(sums)

numpy を使ったやり方

axis=1 は行ごとの和を計算するという指定

python

1import numpy as np 2 3arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [1, 2, 3]] 4 5# for を使ったやり方 6sums = np.sum(arr, axis=1) 7print(sums) # [ 6 15 24 6]

投稿2020/07/13 02:53

編集2020/07/13 02:55
tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ryoya_Akechi

2020/07/19 11:25

ご返信が遅れて申し訳ありません。大変ためになるご回答をありがとうございます。 ぜひ参考にさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問