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

PyCharm中执行np.equal(Numpy)报错?本地Python环境可正常运行

Numpy np.equal 类型匹配报错排查

问题代码

import numpy as np
s="aabaaaacaabc"
m=np.array( [ list( s ) ] * 3 )
print("m", m )
l=np.array([['a'],['b'],['c']] )
print( "l", l )
x = np.equal( m, l )

报错信息

C:\Users\marka\AppData\Local\Microsoft\WindowsApps\python3.10.exe "C:\Users\marka\Leet Notebooks\.ipynb_checkpoints\NumpyQuestion.py" 
m [['a' 'a' 'b' 'a' 'a' 'a' 'a' 'c' 'a' 'a' 'b' 'c']
 ['a' 'a' 'b' 'a' 'a' 'a' 'a' 'c' 'a' 'a' 'b' 'c']
 ['a' 'a' 'b' 'a' 'a' 'a' 'a' 'c' 'a' 'a' 'b' 'c']]
l [['a']
 ['b']
 ['c']]
Traceback (most recent call last):
  File "C:\Users\marka\Leet Notebooks\.ipynb_checkpoints\NumpyQuestion.py", line 7, in <module>
    x = np.equal( m, l )
numpy.core._exceptions._UFuncNoLoopError: ufunc 'equal' did not contain a loop with signature matching types (<class 'numpy.dtype[str_]'>, <class 'numpy.dtype[str_]'>) -> None

Process finished with exit code 

问题原因

不是PyCharm的特殊设置导致的,而是PyCharm使用的Python环境与你其他环境的Numpy版本不一致。你当前PyCharm调用的是Windows系统自带的Python(路径C:\Users\marka\AppData\Local\Microsoft\WindowsApps\python3.10.exe),这个环境中的Numpy版本较低,对字符串数组的广播比较支持不完善。而你其他能正常运行代码的环境,Numpy版本更新,已经修复了这类字符串 dtype 的匹配问题。

解决方法

  • 升级当前环境的Numpy:
    打开PyCharm终端,执行命令:
    pip install --upgrade numpy
    
  • 显式指定统一的字符串 dtype:
    创建数组时指定相同的字符串类型,避免 dtype 不匹配:
    import numpy as np
    s="aabaaaacaabc"
    m=np.array( [ list( s ) ] * 3, dtype='U1' )
    print("m", m )
    l=np.array([['a'],['b'],['c']], dtype='U1' )
    print( "l", l )
    x = np.equal( m, l )
    
  • 切换PyCharm的Python解释器:
    在PyCharm中设置使用你其他能正常运行代码的Python环境(比如Anaconda环境或单独安装的Python解释器),操作路径:File > Settings > Project: xxx > Python Interpreter,选择已安装高版本Numpy的解释器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 12:22:14