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

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

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

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Q&A

解決済

1回答

1371閲覧

for文で配列に値を格納したい

testjojo

総合スコア7

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

0グッド

0クリップ

投稿2018/02/01 14:22

data[0]という配列にsample.bmpの(0,0)~(100,0)までの和を,data[1]に(0,1)~(100,1)までの和...data[99]に(0,100)~(100,100)までの和を格納していきたいのですが,data[]にエラーがでてしまいます.どのようにすれば解決できるでしょうか.よろしくお願いします.

python

1# coding:UTF-8 2 3import numpy as np 4from PIL import Image 5 6im = Image.open("./sample.bmp") 7imgArray = np.asarray(im) 8for i in range(100): 9 for j in range(99): 10 data[i] = imgArray[i,0]/2 11 data[i] += imgArray[i,j+1]/2

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

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

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

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

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

guest

回答1

0

ベストアンサー

最初存在しないdata[i]にアクセスできないからです。

Python

1>>> # これはOK 2... data1 = 42 3>>> # これはNG 4... data2[0] = 42 5Traceback (most recent call last): 6 File "<stdin>", line 2, in <module> 7NameError: name 'data2' is not defined

次のようにすれば良いのではないでしょうか。

Python

1import numpy as np 2from PIL import Image 3 4im = Image.open("./sample.bmp") 5imgArray = np.asarray(im) 6 7data = [] 8for i in range(100): 9 tmp_data = imgArray[i, 0] / 2 10 for j in range(99): 11 tmp_data += imgArray[i, j+1] / 2 12 13 data.append(tmp_data)

ところで、imgArrayのそれぞれの列の合計を知りたいだけなら、次で良い気もします。

Python

1import numpy as np 2from PIL import Image 3 4imgArray = np.asarray( 5 Image.open("./sample.bmp") 6) 7 8data = np.sum(imgArray, axis=0)

投稿2018/02/01 14:30

編集2018/02/01 14:34
LouiS0616

総合スコア35660

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

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

testjojo

2018/02/01 14:45

できました,ありがとうございます! また別の方法のご提案もありがとうございます.まさに列の合計が知りたいだけだったので助かりました.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問