如何解决numpy.triu 不起作用,tri() 缺少 1 个必需的位置参数
代码是:
adjj = np.triu(self.adj,k=1)
然后Pycharm停止并报告:
文件“D:/mapgeneralization/rastertest/dbscan.py”,第 436 行,在 初始化 adjj = np.triu(self.adj,k=1) 文件“C:\ProgramData\Anaconda3\lib\site-packages\numpy\lib\twodim_base.py”, 第 465 行,三人组 mask = tri(*m.shape[-2:],k=k-1,dtype=bool) 类型错误:tri() 缺少 1 个必需的位置参数:'N'
解决方法
什么是self.adj
?如果我使用标量参数,我会收到此错误消息:
In [420]: np.triu(3,k=1)
Traceback (most recent call last):
File "<ipython-input-420-860353c7169f>",line 1,in <module>
np.triu(3,k=1)
File "<__array_function__ internals>",line 5,in triu
File "/usr/local/lib/python3.8/dist-packages/numpy/lib/twodim_base.py",line 499,in triu
mask = tri(*m.shape[-2:],k=k-1,dtype=bool)
TypeError: tri() missing 1 required positional argument: 'N'
但没有错误是我给它一个二维数组:
In [421]: np.triu(np.ones((3,4)),k=1)
Out[421]:
array([[0.,1.,1.],[0.,0.,1.]])
与许多 numpy
函数一样,triu
以
m = asanyarray(m)
如果 m
类似于 scipy 稀疏矩阵,则结果是一个 0d 对象 dtype 数组。 Argumentwise 这将与我的标量示例相同。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。