2017-10-30 3 views
0

ユーザー入力から浮動小数点配列に浮動小数点型の配列を追加するにはどうすればよいですか?私が下に書いたコードは毎回空の配列を出力しています。なぜ何も追加されていないのか分かりません。新しいnumpy配列に1つの要素を追加する方法

import numpy as np 

start=0 
start_prompt = int(input("Start press 1")) 
while start_prompt > start: 
    x=np.array([]) 
    y = float(input("Please input number: ")) 
    if y > 0: 
     np.append(x,y) 
    print(x) 
+5

私はこのためにpythonリストを使用します。ここにはnumpy配列は必要ありません。 – roganjosh

+1

これも無限ループです.... – DavidG

+0

np.appendは使用しないでください。 – hpaulj

答えて

0

あなたの配列を変更する必要がありますか?

x = np.append(x, y) 

>>> while start_prompt > start: 
...  x=np.array([]) 
...  y = float(input("Please input number: ")) 
...  if y > 0: 
...   x = np.append(x, y) 
...  print(x) 

また、start_promptは常にstartより大きいため、最初は無限ループを実行しています。ループ内でx配列を作成し、各繰り返しで再初期化されます。期待通りに動作させたい場合は、whileループの外側で宣言してください。第二に、あなたがしようとしていることをやるためのより良い方法があります。

+1

'x = np.array([])'をループの外に移動する必要があります。 – DavidG

+0

私はそれが無限ループであることは知っていますが、xの値は変わりません。 – pissall

+0

@pissallループの繰り返しごとに配列を空の配列として再定義することで、作業を元に戻し続けます。意味のあるコード出力はありません。 – roganjosh

0

こんにちは、すべての返信に感謝します。私はあなたが示唆しているものを取り上げて、試行錯誤して、すべての提案をして、私が意図したように動作させるようにしました。ここには動作するコードがあります(コピー&ペースト中にエラーが発生しないことを望みます)

def get_user_values1(x): 
    x = np.array([]) 
    initial = float(input("Input the cup weight in grams:")) 
    while initial <= 0: 
     #print ("Invalid") 
     initial = float(input("Input the cup weight in grams:")) 
     x=np.append(x,initial) 
    else: 
     x=np.append(x,initial) 
    return (x) 



def main(): 
    x = np.array([]) 
    start = 1 #1 = yes stasrt script 
    start_prompt = int(input("To start press 1, To Close press 0: ")) 
    while start_prompt == start:  
     get_user1 = get_user_values1 (x) 
     x = np.append(x,get_user1) 




main() 
関連する問題