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

Python:使用NumPy数组绘图失败,plt.plot(s,s)报错求助

解决你用NumPy数组绘图时遇到的plt.plot错误问题

嘿,我看了你的代码,问题出在你错误覆盖了NumPy的array构造函数,这不仅让你没法正常创建NumPy数组,还可能埋下后续的隐患。咱们一步步来修正:

问题根源

你写了np.array=[],这行代码把原本NumPy用来创建数组的核心函数np.array直接替换成了一个空列表!之后的s=np.array其实是把这个空列表赋值给了s,你后续的append操作只是在给普通Python列表加元素,完全没用到NumPy数组的功能,而且这会导致你之后再想调用np.array()创建数组时彻底失败——因为它现在是个列表,不是函数了。

修正后的代码

下面是两种正确的实现方式,你可以选一种:

import numpy as np
import matplotlib.pyplot as plt

def npArrDefine():
    # 方法1:先构建普通列表,再转为NumPy数组
    s_list = []
    for i in range(10):
        s_list.append(i + 3)
    s = np.array(s_list)  # 用NumPy的array函数把列表转成数组
    
    # 方法2(更简洁):直接用NumPy的arange生成数组,省去循环
    # s = np.arange(3, 13)  # 生成从3到12的10个元素,和循环效果一样
    
    plt.plot(s, s)
    plt.axis([0, 5, 0, 20])
    plt.show()

npArrDefine()

为什么这样改?

  • 再也不会覆盖np.array函数,后续使用NumPy的其他功能也不会出问题
  • 真正创建了NumPy数组,比普通列表更适合数值计算和绘图(matplotlib对NumPy数组的支持更高效)
  • 两种方法都能得到你想要的[3,4,...,12]的数组,绘图也能正常运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:55:22