如何将单个元素附加到新的numpy数组

时间:2017-10-30 10:14:15

标签: python arrays numpy append

如何将单个元素从用户输入追加到numpy数组,最好是浮点值。我下面写的代码每次打印出一个空数组,我很难理解为什么没有附加任何内容。

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)

2 个答案:

答案 0 :(得分: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 :(得分: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()