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

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

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

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

1回答

1619閲覧

Pythonでのfor文計算結果のndarrayへの格納ができない

satosatope

総合スコア12

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2018/10/03 03:41

Pyhton でfor文を回した際に得られる演算結果を配列に格納していきたいのですがうまく追加(append)できません。
毎回、最後のループでの演算結果が上書きされてしまします。

どのようにすれば良いでしょうか?

よろしくお願いします。

python

1#-*- coding:utf-8 -*- 2import cv2 3import sys 4import csv 5import numpy as np 6 7 8 9if __name__ == "__main__": 10 coordinateData = np.loadtxt("sample.csv", delimiter=",", skiprows=1) 11 print(coordinateData) 12 a = np.array([0]) 13 for i in range(3): 14 j = i 15 i = i + 1 16 17 img = cv2.imread("./test/32/32.tif", cv2.IMREAD_UNCHANGED) 18 19 20 if img is None: 21 print("Failed to load image file.") 22 sys.exit(1) 23 24 x = int(coordinateData[j,0]) 25 y = int(coordinateData[j,1]) 26 xSize = int(coordinateData[j,2]) 27 ySize = int(coordinateData[j,3]) 28 29 xe = x + xSize 30 ye = y + ySize 31 32 targetField = np.array(img[x:x+xSize, y:y+ySize]) 33 print(targetField) 34 print(targetField.shape) 35 print(np.average(targetField)) 36 37 mean = np.average(targetField) 38 39 print(np.append(a, mean)) 40 41 42 np.savetxt("sampleW3.csv", a , delimiter=",")

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

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

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

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

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

guest

回答1

0

ベストアンサー

np.append() は第1引数の配列に第2引数を加えたコピーを返す配列であり、第1引数自体は変更しません。
リファレンス を確認してください。

python

1import numpy as np 2 3a = [] 4b = np.append(a, 2) 5 6print('a', a) # a [] 7print('b', b) # b [2.]

なので、以下のようにします。

import numpy as np a = np.array([]) for i in range(10): a = np.append(a, i) print('a', a) # a [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.] # 値を連続的に配置するため、追加のたびにコピーが行われるので、 # リストに追加して最後に numpy に変換するほうが高速です。 a = [] for i in range(10): a.append(i) a = np.array(a) # numpy 配列にする。 print('a', a) # a [0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

投稿2018/10/03 03:54

tiitoi

総合スコア21956

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問