我试着用pylot来模拟单摆。为此,我创建了类钟摆,在其中一个方法中,我不断得到相同的错误。
def __init__(self, L = 1, M = 1, G = 9.8, origin = (0, 0), init = [60, 0]):
self.init_state = np.array(init, dtype = 'float')
self.params = (L, M, G)
self.origin = origin
self.time = 0
self.state = self.init_state * (np.pi/180.)
def dstate_dt(self, state, t):
"""compute the derivative of the given state"""
(L, M, G) = self.params
dydx = np.zero_lie(state)
dydx[0] = state[1]
dydx[1] = -(G/L)*np.sin(state[0])
return dydx
错误代码为:
文件“C:\Users\Lucas\Anaconda3\envs\Spyder\lib\site packages\numpy\core\fromnumeric.py”,第47行,在_wrapitresult=getattr(asarray(obj),method)中(*args,**kwds)
只有整数标量数组可以转换为标量索引
进入参考行,在一个名为fromnumeric.pi的文件夹中,给定的函数如下:
def _wrapit(obj, method, *args, **kwds):
try:
wrap = obj.__array_wrap__
except AttributeError:
wrap = None
result = getattr(asarray(obj), method)(*args, **kwds)
if wrap:
if not isinstance(result, mu.ndarray):
result = asarray(result)
result = wrap(result)
return result
是什么触发了此错误?我如何修复它?完整回溯如下:
文件“C:\Users\Lucas\Desktop\Estudos\Python\Simple be摆.py”,第86行,动画(0)
文件"C:\用户\卢卡斯\桌面\Estudos\Python\简单Pendulum.py",第80行,在动画line.set_data(pendulum.position())
文件“C:\用户\卢卡斯\桌面\Estudos\Python\简单endulum.py”,第27行,位置x=np.cumsum(self.origin[0],L*np.sin(self.state[0])
文件“
文件“C:\Users\Lucas\Anaconda3\envs\Spyder\lib\site packages\numpy\core\fromneric.py”,第2423行,在累积和返回函数中(a,'cumsum',axis=axis,dtype=dtype,out=out)
文件“C:\Users\Lucas\Anaconda3\envs\Spyder\lib\site packages\numpy\core\fromneric.py”,第58行,在_wrapfuncreturn _wrapit中(obj,method,*args,**kwds)
文件“C:\Users\Lucas\Anaconda3\envs\Spyder\lib\site packages\numpy\core\fromnumeric.py”,第47行,在_wrapitresult=getattr(asarray(obj),method)中(*args,**kwds)
只有整数标量数组可以转换为标量索引
回溯显示错误发生在这一行(来自您的代码)
File "C:\Users\Lucas\Desktop\Estudos\Python\Simple Pendulum.py", line 27, in
position x = np.cumsum(self.origin[0], L*np.sin(self.state[0]))
我没有看到在您的代码示例中使用累积
!发布的方法根本不会出现在回溯中。
您传递两个参数
self.origin[0]
L*np.sin(self.state[0]
但是如果您花时间检查文档中的cumsum
,您将看到:
numpy.cumsum(a, axis=None, dtype=None, out=None)[source]
它接受一个数组参数a
。第二个参数是轴,它只能是一个标量,一个数字。这就是我抱怨的错误!
我不能建议一个修复,因为我不知道你打算用累积
调用。
我正在尝试一个来自github链接的tensorflow的简单演示代码 我目前正在使用python版本3.5。2 我在命令行中尝试board.py时遇到了这个错误。我已经安装了运行此操作所需的所有依赖项。
和 现在我想对数组进行矢量化,以便将它们打印在一起。我尽量 或 它给出了TypeError:只有整数标量数组才能转换为标量索引
我为这个问题制作了两个数组的简单示例:是一个一维数组,索引处有标签,对应于nD数组的相同索引。我获取标签2出现的所有索引,并希望检索中的值。 因此,如果我想要标签2,我得到索引0和3,这应该给我相应数组中索引0和3的值。 但是当我想调用我的函数时,我收到一个TypeError@。 我的职能:
我知道关于这个错误已经有几个问题了。但在这种特殊情况下,我不确定是否已经有了解决我问题的方法。我有这部分代码,我想打印数据帧df的“y”列。发生以下错误:TypeError:只有整数标量数组才能转换为标量索引 可以打印整个数据帧。这看起来像: 这是整个错误消息: 我认为这与numpy阵列有关。提前谢谢你!
我正在使用Python 3.6。3号巨蟒。我正在努力: 然后出现了这个错误: 只有整数标量数组可以转换为标量索引 我查看了地图: 所以我想我正确地使用了。只是不确定如何显示地图结果。
我想从官方熊猫留档...DataFrame.fillna所以基本上用值1填充df数据框“myc”列中的NaN值。 数据帧 代码1 成果目标1 误差表第1页 代码2我后来还尝试列出any_feature列 错误2 尝试解决方案 Not dictionary - Pandas: Getting "TypeError: only integer scalar arrays can be converte