我正在scipy.optimize.curve_fit()以迭代的方式使用.
我的问题是,当它无法适应参数时,整个程序(以及迭代)停止,这就是它给出的错误:
RuntimeError: Optimal parameters not found: Number of calls to function has reached maxfev = 800.
我明白为什么它无法适应.我的问题是,有什么办法可以在Python 3.2.2中编写程序来忽略这种情况而只是继续吗?
我有一个查找表,其定义如下:
| <1 2 3 4 5+
-------|----------------------------
<10000 | 3.6 6.5 9.1 11.5 13.8
20000 | 3.9 7.3 10.0 13.1 15.9
20000+ | 4.5 9.2 12.2 14.8 18.2
TR_ua1 = np.array([ [3.6, 6.5, 9.1, 11.5, 13.8],
[3.9, 7.3, 10.0, 13.1, 15.9],
[4.5, 9.2, 12.2, 14.8, 18.2] ])
Run Code Online (Sandbox Code Playgroud)
用户将输入值示例(1.3,25,000),(0.2,50,000),依此类推.scipy.interpolate()应进行插值以确定正确的值.
目前,我能做到这一点的唯一方法是使用一堆if/ elifs如下所示.我很确定有更好,更有效的方法
这是我到目前为止所得到的:
import numpy as np
from scipy import interpolate
if (ua == 1):
if (inc <= low_inc): # low_inc = 10,000
if …Run Code Online (Sandbox Code Playgroud) 我有两个数组x,y如下:
x = np.array([6, 3, 5, 2, 1, 4, 9, 7, 8])
y = np.array([2, 1, 3, 5, 3, 9, 8, 10, 7])
Run Code Online (Sandbox Code Playgroud)
我发现当地最小值和最大值的索引如下:
sortId = np.argsort(x)
x = x[sortId]
y = y[sortId]
minm = np.array([])
maxm = np.array([])
while i < y.size-1:
while(y[i+1] >= y[i]):
i = i + 1
maxm = np.insert(maxm, 0, i)
i++
while(y[i+1] <= y[i]):
i = i + 1
minm = np.insert(minm, 0, i)
i++
Run Code Online (Sandbox Code Playgroud)
这段代码有什么问题?答案应该是索引minima = [2, 5, …
我已经从R换成了熊猫.当我做类似的事情时,我经常得到SettingWithCopyWarnings
df_a = pd.DataFrame({'col1': [1,2,3,4]})
# Filtering step, which may or may not return a view
df_b = df_a[df_a['col1'] > 1]
# Add a new column to df_b
df_b['new_col'] = 2 * df_b['col1']
# SettingWithCopyWarning!!
Run Code Online (Sandbox Code Playgroud)
我想我理解这个问题,虽然我很乐意了解我的错误.在给定的示例中,未定义是否df_b是视图df_a.因此,分配的效果df_b尚不清楚:它是否会影响df_a?通过在过滤时显式制作副本可以解决此问题:
df_a = pd.DataFrame({'col1': [1,2,3,4]})
# Filtering step, definitely a copy now
df_b = df_a[df_a['col1'] > 1].copy()
# Add a new column to df_b
df_b['new_col'] = 2 * df_b['col1']
# No Warning now
Run Code Online (Sandbox Code Playgroud)
我认为有些东西是我遗漏的:如果我们真的无法确定我们是否创建了一个视图,那么哪些观点有用呢?来自pandas文档(http://pandas-docs.github.io/pandas-docs-travis/indexing.html?highlight=view#indexing-view-versus-copy)
除了简单的情况之外,很难预测它[ …
我对以下行为感到困惑.当我有这样的数据帧时:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(6, 4), columns=list('ABCD'), index=list('bcdefg'))
Run Code Online (Sandbox Code Playgroud)
看起来如下:
A B C D
b -0.907325 0.211740 0.150066 -0.240011
c -0.307543 0.691359 -0.179995 -0.334836
d 1.280978 0.469956 -0.912541 0.487357
e 1.447153 -0.087224 -0.176256 1.319822
f 0.660994 -0.289151 0.956900 -1.063623
g -1.880520 1.099098 -0.759683 -0.657774
Run Code Online (Sandbox Code Playgroud)
我收到了预期的错误
TypeError:无法对这些类型为'int'的索引器[3]进行切片索引
当我尝试使用以下切片时.loc:
print df.loc[3:, ['C', 'D']]
Run Code Online (Sandbox Code Playgroud)
因为我传递一个整数作为索引,而不是包含在其中的一个字母index.
但是,如果我现在尝试
df.loc[3:, ['C', 'D']] = 10
Run Code Online (Sandbox Code Playgroud)
它工作正常,并给我输出:
A B C D
b -0.907325 0.211740 0.150066 -0.240011 …Run Code Online (Sandbox Code Playgroud) 我想知道是否有一个简单的方法可以从一个numpy数组列表中生成一个pandas DataFrame,其中列是数组.默认行为似乎让数组成为行,我完全不明白为什么.这是一个简单的例子:
names = ['data1', 'data2', 'data3']
data = [np.arange(10) for _ in names]
df = pd.DataFrame(data=data, columns=names)
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误,表明pandas需要10列.
如果我做
df = pd.DataFrame(data=data)
Run Code Online (Sandbox Code Playgroud)
我得到一个包含10列和3行的DataFrame.
鉴于将行附加到DataFrame的行通常要困难得多,我想知道这种行为,例如,假设我很快就想将第4个数据数组放入DataFrame中我希望将数据组织成列来做
df['data4'] = new_array
Run Code Online (Sandbox Code Playgroud)
如何快速构建我想要的DataFrame?
我正在尝试这段代码:
$rescntryvals[] = $rescntry;
$rescntry = "";
$resclkvalscntry[] = $rclick;
$rclick = "";
$resclkaddsnm[] = $addsnmame;
$addsnmame = "";
Run Code Online (Sandbox Code Playgroud)
但我明白了:
警告:不能将标量值用作数组
为什么?什么是解决方案?
我想在矩形svg上点击鼠标的坐标.我正在尝试将鼠标单击坐标打印到控制台.
我可以使用pageX和pageY获取坐标,但这是整个页面.我只需要svg里面的坐标.
我正在使用 d3.v3.min.js
所以我尝试过:
$(document).mousedown(function () {
console.log(d3.mouse(this));
});
Run Code Online (Sandbox Code Playgroud)
我收到错误:
未捕获的TypeError:无法读取null的属性'sourceEvent'
我也尝试过:
$(document).mousedown(function () {
console.log(d3.mouse(document.getElementById("svg_id")));
});
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误.
当我尝试时d3.svg.mouse(this),我得到错误:
未捕获的TypeError:undefined不是函数
如何获取svg中的点击坐标以及为什么这些d3.mouse()功能不起作用?
我一直在尝试使用python的numpy.where函数来确定特定值的位置,但由于某种原因,它错误地确定False了实际找到值的位置.从而返回一个空数组.见下文:
>>>lbpoly=numpy.array([ 5.45 5.5 5.55 5.6 5.65 5.7 5.75 5.8 5.85 5.9 5.95 6.
6.05 6.1 6.15 6.2 6.25 6.3 6.35 6.4 6.45 6.5 6.55 6.6
6.65 6.7 6.75 6.8 6.85 6.9 6.95 7. ])
>>>cpah=numpy.where(lbpoly==6.2)
>>>print cpah
>>>(array([], dtype=int32),)
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样?我尝试了许多不同的变体,甚至使用<和>逻辑.但这会产生2个值的指数.
我有一系列的清单
import pandas as pd
s = pd.Series([[1, 2, 3], [4, 5, 6]])
Run Code Online (Sandbox Code Playgroud)
我想要一个DataFrame,每列都有一个列表.
没有from_items,from_records,DataFrame Series.to_frame似乎工作.
这该怎么做?