草庐IT

python - 反转插值以给出与所需插值函数值关联的变量

我正在尝试使用scipy的插值函数来反转插值函数。假设我创建了一个插值函数,importscipy.interpolateasinterpolateinterpolatedfunction=interpolated.interp1d(xvariable,data,kind='cubic')当我指定a时,是否有一些函数可以找到x:interpolatedfunction(x)==a换句话说,“我希望我的插值函数等于a;xvariable的值是多少才能使我的函数等于a?”我很感激我可以用一些数字方案来做到这一点,但是有没有更直接的方法?如果插值函数在xvariable中是多值的怎么办?

python - 正确使用 fmin_l_bfgs_b 来拟合模型参数

我有一些实验数据(对于y、x、t_exp、m_exp),并且想使用constrainedmultivariateBFGSmethod为这些数据找到“最佳”模型参数(A、B、C、D、E).参数E必须大于0,其他无限制。deffunc(x,A,B,C,D,E,*args):returnA*(x**E)*numpy.cos(t_exp)*(1-numpy.exp((-2*B*x)/numpy.cos(t_exp)))+numpy.exp((-2*B*x)/numpy.cos(t_exp))*C+(D*m_exp)initial_values=numpy.array([-10,2,-20,0.

python - 没有任何循环的 Scipy 快速一维插值

我有两个二维数组,x(ni,nj)和y(ni,nj),我需要在一个轴上进行插值。我想为每个ni沿最后一个轴进行插值。我写了importnumpyasnpfromscipy.interpolateimportinterp1dz=np.asarray([200,300,400,500,600])out=[]foriinrange(ni):f=interp1d(x[i,:],y[i,:],kind='linear')out.append(f(z))out=np.asarray(out)但是,我认为这种方法效率低且速度慢,因为如果数组大小太大就会循环。像这样插入多维数组的最快方法是什么?有没有

python - scikit-learn 可以处理多少功能?

我有一个[66k,56k]大小(行,列)的csv文件。它是一个稀疏矩阵。我知道numpy可以处理那个大小的矩阵。我想知道根据大家的经验,scikit-learn算法可以轻松处理多少特征? 最佳答案 取决于估算器。在那个规模下,线性模型仍然表现良好,而SVM可能需要永远训练(并且忘记随机森林,因为它们无法处理稀疏矩阵)。我个人使用过LinearSVC、LogisticRegression和SGDClassifier以及大小约为300k×330万的稀疏矩阵,没有遇到任何问题。参见@amueller的scikit-learncheatsh

带有 scipy.spatial.Delaunay 的 Python 凸包,如何消除船体内的点?

我在名为pointsList的np.array中有一个3D点列表,值为float:[[1.,2.,10.],[2.,0.,1.],[3.,6.,9.],[1.,1.,1.],[2.,2.,2.],[10.,0.,10.],[0.,10.,5.],...etc.此代码对点云进行Delaunay三角剖分:importnumpyasnpimportscipy.spatialtri=scipy.spatial.Delaunay(pointsList)#Delaunaytriangulationindices=tri.simplices#indicesofverticesvertices=poi

python - scipy 稀疏矩阵 : remove the rows whose all elements are zero

我有一个从sklearntfidfVectorier转换而来的稀疏矩阵。我相信有些行是全零行。我想删除它们。但是,据我所知,现有的内置功能,例如nonzero()和eliminate_zero(),关注零条目,而不是行。有什么简单的方法可以从稀疏矩阵中删除全零行吗?例子:我现在拥有的(实际上是稀疏格式):[[0,0,0][1,0,2][0,0,1]]我想得到的:[[1,0,2][0,0,1]] 最佳答案 切片+getnnz()就可以了:M=M[M.getnnz(1)>0]直接在csr_array上工作。您还可以在不更改格式的情况下删

python - 在 Python 中有效地按键选择字典项目

假设我有一个字典,它的键是字符串。我如何才能有效地从仅包含某些列表中存在的键的字典中创建新字典?例如:#adictionarymappingstringstostuffmydict={'quux':...,'bar':...,'foo':...}#listofkeystobeselectedfrommydictkeys_to_select=['foo','bar',...]我想出的方法是:filtered_mydict=[mydict[k]forkinmydict.keys()\ifkinkeys_to_select]但我认为这是非常低效的,因为:(1)它需要使用keys()枚举键,(

python - 使用 fsolve 求解

importnumpyasnpfromscipy.optimizeimportfsolvemusun=132712000000T=365.25*86400*2/3e=581.2392124070273deff(x):return((T*musun**2/(2*np.pi))**(1/3)*np.sqrt(1-x**2)-np.sqrt(.5*musun**2/e*(1-x**2)))x=fsolve(f,0.01)f(x)printx这段代码有什么问题?好像不行。 最佳答案 因为sqrt为负数参数返回NaN,您的函数f(x)无法计算

python - 在 Python (3.3) 中生成相关数据

在R中有一个函数(cm.rnorm.cor,来自包CreditMetrics),它获取样本量、变量量和相关性矩阵以创建相关数据。Python中是否有等效项? 最佳答案 方法multivariate_normalnumpy.random中的Generator类就是您想要的函数。例子:importnumpyasnpimportmatplotlib.pyplotaspltnum_samples=400#Thedesiredmeanvaluesofthesample.mu=np.array([5.0,0.0,10.0])#Thedesire

python - Scipy导数

我有一个关于Scipy的微分函数的问题。我昨晚用了它,得到了一些奇怪的答案。今天早上我再次尝试了一些简单的功能,得到了一些正确的答案和一些错误的答案。这是我的测试:In[1]:defpoly1(x):...:returnx**2In[3]:derivative(poly1,0)Out[3]:0.0In[4]:defpoly2(x):...:return(x-3)**2In[6]:derivative(poly2,3)Out[6]:0.0In[8]:defsin1(x):...:returnsin(x)In[14]:derivative(sin1,pi/2)Out[14]:5.55111