gpt4 book ai didi

Python 'AttributeError: '函数'对象没有属性 'min''

转载 作者:太空狗 更新时间:2023-10-29 17:46:04 27 4
gpt4 key购买 nike

首先,对于这两个问题看起来多么明显,我深表歉意;我对此非常陌生,完全不知道自己在做什么。

我正在尝试编写一些东西来将用于样条插值的 Scipy 函数应用于值数组。我的代码目前看起来像这样:

import numpy as np
import scipy as sp
from scipy.interpolate import interp1d

x=var
x1 = ([0.1,0.3,0.4])
y1 = [0.2,0.5,0.6]

new_length = 25
new_x = np.linspace(x.min(), x.max(), new_length)
new_y = sp.interpolate.interp1d(x, y, kind='cubic')(new_x)

但是当它到达线的时候

new_x = np.linspace(x.min(), x.max(), new_length)

我收到以下错误:

AttributeError: 'function' object has no attribute 'min'

到目前为止,谷歌搜索等没有发现任何我能理解的东西。这是什么意思,我该如何解决?

第二个问题:如何一次输入多行代码?目前,如果我尝试复制整个内容然后将其粘贴到 PyLab,它只会输入我代码的第一行,因此我必须一次将整个内容粘贴到一行中。我该如何解决这个问题?

最佳答案

如果这条线

new_x = np.linspace(x.min(), x.max(), new_length)

正在生成错误消息

AttributeError: 'function' object has no attribute 'min'

那么 x 是一个函数,函数(通常)没有 min 属性,所以你不能调用 some_function.min() x 是什么?在您的代码中,您只将其定义为

x=var

我不确定 var 是什么。 var 不是 Python 中的默认内置函数,但如果它是一个函数,那么要么您出于某种原因自己定义了它,要么您从某个地方获取了它(假设您正在使用 Sage ,或者你做了一个像 from sympy import * 之类的明星导入。)

[更新:因为您说您正在“使用 PyLab”,所以 var 可能是 numpy.var,它已在 IPython 启动时导入到作用域中。我认为您的意思是“在 --pylab 模式下使用 IPython。]

你还定义了x1y1,但是你后面的代码引用了xy,所以感觉这段代码介于两种功能状态之间。

现在 numpy 数组 确实 有一个 .min().max() 方法,所以这个:

>>> x = np.array([0.1, 0.3, 0.4, 0.7])
>>> y = np.array([0.2, 0.5, 0.6, 0.9])
>>> new_length = 25
>>> new_x = np.linspace(x.min(), x.max(), new_length)
>>> new_y = sp.interpolate.interp1d(x, y, kind='cubic')(new_x)

会起作用。你的测试数据不会因为插值需要至少 4 个点,你会得到

ValueError: x and y arrays must have at least 4 entries

关于Python 'AttributeError: '函数'对象没有属性 'min'',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15930454/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com