You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在NumPy数组中获取用户输入?代码示例及问题分析

如何将用户输入存入NumPy数组?

我来帮你搞定这个问题,先看看你代码里的几个小问题,再给你正确的实现方式:

原代码的问题点

  • numpy.append() 使用错误:这个函数需要两个必填参数——第一个是要追加元素的目标数组,第二个是要添加的元素。而且它不会原地修改原数组,而是返回一个新的数组。你之前只传了元素x,还没把返回值赋值给my_array,所以你的数组一直是空的。
  • 初始化数组可以更严谨:虽然numpy.array([])能创建空数组,但提前指定数据类型(比如float)能避免后续可能出现的类型不一致问题。

修复后的循环实现(适合理解过程)

如果你想保留循环的方式,修改后的代码如下:

import numpy as np

# 获取用户指定的数组大小
array_size = int(input("Size of array: "))
# 初始化空的float类型NumPy数组
my_array = np.array([], dtype=np.float64)

for _ in range(array_size):
    # 获取用户输入的元素并转为浮点数
    element = float(input("Element: "))
    # 关键:将append返回的新数组重新赋值给my_array
    my_array = np.append(my_array, element)

# 输出向下取整后的结果
print(np.floor(my_array))

更高效的实现方式

因为NumPy数组的内存是连续分配的,频繁调用append会多次触发内存重新分配,效率不高。更优的做法是先把用户输入存在普通Python列表里,再一次性转换成NumPy数组:

import numpy as np

array_size = int(input("Size of array: "))
# 先用普通列表收集所有输入
element_list = []
for _ in range(array_size):
    element_list.append(float(input("Element: ")))

# 一次性转换为NumPy数组
my_array = np.array(element_list, dtype=np.float64)
print(np.floor(my_array))

额外提示

如果用户输入的都是整数,你可以把float(input(...))改成int(input(...)),同时把dtype=np.float64换成dtype=np.int64,根据实际需求调整即可。

内容的提问来源于stack exchange,提问作者Kaushal Raj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:30:39