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 这将与我的标量示例相同。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...