例如,我想对返回矩阵的决定因素的函数进行载体化.

所以我try 以下代码:

data1test=np.random.rand(2,2)
data2test=np.random.rand(2,2)
data3test=np.random.rand(2,2)
data4test=np.random.rand(2,2)
fulldata=np.array((data1test,data2test,data3test,data4test))

def det_vec():
    return np.vectorize(np.linalg.det)
myfunc=det_vec()
myfunc(fulldata)

然而,它会返回一个"LinAlgRecord:0维数组".数组必须至少是二维的"错误.

有人能告诉我问题出在哪里吗?谢谢!

推荐答案

看来,您的vector化函数的vector化得太深了.

您可以使用signature参数来解决这个问题,并仅在顶层强制执行向量化:

>>> myfunc = np.vectorize(np.linalg.det, signature="(a,b,c)->(a)")
>>> myfunc((np.eye(2), np.array([[1,3],[4,2]])))
array([  1., -10.])

编辑:值得一提的是,@hpaulj是对的-这里甚至不一定需要显式的载体化.请参阅以下内容:

>>> np.linalg.det((np.eye(2), np.array([[1,3],[4,2]])))
array([  1., -10.])

Python相关问答推荐

基本链合同的地址是如何计算的?

DuckDB将蜂巢分区插入拼花文件

2维数组9x9,不使用numpy.数组(MutableSequence的子类)

我在使用fill_between()将最大和最小带应用到我的图表中时遇到问题

当多个值具有相同模式时返回空

Matlab中是否有Python的f-字符串等效物

带条件计算最小值

如何使用html从excel中提取条件格式规则列表?

Excel图表-使用openpyxl更改水平轴与Y轴相交的位置(Python)

处理带有间隙(空)的duckDB上的重复副本并有效填充它们

如何让Flask 中的请求标签发挥作用

为什么默认情况下所有Python类都是可调用的?

基于字符串匹配条件合并两个帧

给定高度约束的旋转角解析求解

如何使用SentenceTransformers创建矢量嵌入?

Pandas Data Wrangling/Dataframe Assignment

循环浏览每个客户记录,以获取他们来自的第一个/最后一个渠道

在Python中从嵌套的for循环中获取插值

Tensorflow tokenizer问题.num_words到底做了什么?

Python协议不兼容警告