用cupy(python)计算矩阵的行列式

用cupy(python)计算矩阵的行列式,python,numpy,attributeerror,cupy,Python,Numpy,Attributeerror,Cupy,我目前正在编辑python中用于GPU加速的Cupy代码。大多数编辑都需要从numpy直接交换到cupy(例如cp.array而不是np.array),只有少数例外。然而,我在这段代码中遇到了问题,它与numpy一起工作,我不确定为什么我会突然出现这个错误。我有以下代码 ab = (b - a) ac = (c - a) ap1 = (p1 - a) ap2 = (p2 - a) 其中a、b、c、p1和p2均为1D Cupy阵列 从这里我想用下面的公式来计算行列式 testP1 = 1 if

我目前正在编辑python中用于GPU加速的Cupy代码。大多数编辑都需要从numpy直接交换到cupy(例如cp.array而不是np.array),只有少数例外。然而,我在这段代码中遇到了问题,它与numpy一起工作,我不确定为什么我会突然出现这个错误。我有以下代码

ab = (b - a)
ac = (c - a)
ap1 = (p1 - a)
ap2 = (p2 - a)
其中a、b、c、p1和p2均为1D Cupy阵列

从这里我想用下面的公式来计算行列式

testP1 = 1 if cp.linalg.det([ab,ac,ap1]) >0 else 0
testP2 = 1 if cp.linalg.det([ab,ac,ap2]) >0 else 0
这在numpy中工作得很好(输入是numpy而不是cupy数组),但是,我现在得到以下错误


AttributeError:“list”对象没有属性“ndim”

正如g2i评论的那样,cupy不会隐式转换为数组,而numpy会,因此转换为cupy数组必须显式进行

不要将列表用作
det
的输入。使用或numpy或cupy数组是否尝试将
[ab,ac,ap1]
明确转换为
cp.array
对象?也许numpy隐式地进行转换,而cupy没有。Hi@g2i就是这样,我愚蠢地尝试了所有其他组合,包括在数组类型之间进行转换,然后才尝试了最简单的选项。谢谢你好MattC1990,请在写下一个问题之前先熟悉一下!快乐编码!