标签: scipy

python中插值多项式的积分函数

我有一组点,在这些点上我使用 scipy 来计算插值多项式。我希望拥有该函数的原语

self.p=interpolate.interp1d(self.__discreteDistribution['x'], self.__discreteDistribution['y'], kind='cubic')
Run Code Online (Sandbox Code Playgroud)

我可以轻松地使用 scipy 计算一个区间内的积分值,使用

integrate.quad(self.p, 0, max)
Run Code Online (Sandbox Code Playgroud)

我想要的是拥有 self.p() 的原语。我找到了 sympy,但我没有插值多项式的分析版本。

在这种情况下你会做什么?

python numpy integral scipy

0
推荐指数
1
解决办法
2634
查看次数

将附加参数传递给 scipy.optimize.root 中的雅可比矩阵

我正在求解大型方程组,但可以使用雅可比矩阵。

我决定使用 scipy.optimize.root (接受其他建议),在这里我可以将雅可比作为额外的可调用对象传递。唯一的问题是我的雅可比包含额外的常量,例如。

对于本例,需要求解 y、z,k 是一个常数

import scipy.optimize

def fun(x, k):
    [y, z]= x

    return [k*y**2 + z**2 - 25, k*z*y ]

def jacobian(x, k):
    [y, z] = x

    j = [[2*k*y, 2*z],
         [  k*z, k*y]]

    return j

solution = scipy.optimize.root(fun, [x1, x2], jaco=(jacobian, value_for_k))
Run Code Online (Sandbox Code Playgroud)

scipy python-3.x

0
推荐指数
1
解决办法
3157
查看次数

Pandas 用 NaN 描述 vs scipy.stats percentileofscore?

我遇到了一个奇怪的情况,pd.describe 给我的百分位标记与 scipy.stats percentileofscore 不一致,我认为是因为 NaN。

我的 df 是:

      f_recommend
0     3.857143
1     4.500000
2     4.458333
3          NaN
4     3.600000
5          NaN
6     4.285714
7     3.587065
8     4.200000
9          NaN
Run Code Online (Sandbox Code Playgroud)

当我跑步时df.describe(percentiles=[.25, .5, .75])我得到:

       f_recommend
count     7.000000
mean      4.069751
std       0.386990
min       3.587065
25%       3.728571
50%       4.200000
75%       4.372024
max       4.500000
Run Code Online (Sandbox Code Playgroud)

当我删除 NaN 运行时,我得到相同的值。

然而,当我想查找特定值时,当我运行时,scipy.stats.percentileofscore(df['f_recommend'], 3.61, kind = 'mean')我得到:第 28 个百分位数包含 NaN,第 20 个百分位数不包含 NaN。

有什么想法可以解释这种差异吗?

预计到达时间:

我不认为问题在于我们计算百分位数的方式不同。因为只有当您以不同的方式计算相同的两个数字的百分位数时,这才重要。但在这里,describe 给出的 25 个百分位为 3.72。所以 3.61 绝对不可能是第 28 个百分位。没有一个公式可以给出这一点。

特别是,当我对不带 …

python scipy percentile pandas

0
推荐指数
1
解决办法
2594
查看次数

到 (row,col,distance) 列表的距离的 Numpy 数组

我有一个 nd 数组,如下所示:

[[ 0.          1.73205081  6.40312424  7.21110255  2.44948974]
 [ 1.73205081  0.          5.09901951  5.91607978  1.        ]
 [ 6.40312424  5.09901951  0.          1.          4.35889894]
 [ 7.21110255  5.91607978  1.          0.          5.09901951]
 [ 2.44948974  1.          4.35889894  5.09901951  0.        ]]
Run Code Online (Sandbox Code Playgroud)

该数组中的每个元素都是一个距离,我需要将其转换为包含行、列、距离的列表,如下所示:

l = [(0,0,0),(0,1, 1.73205081),(0,2, 6.40312424),...,(1,0, 1.73205081),(1,1,0),...,(4,4,0)] 
Run Code Online (Sandbox Code Playgroud)

此外,删除对角线元素会很酷,而且元素 (j,i) 因为 (i,j) 已经存在。本质上,是否可以只取它的顶部三角矩阵?

这是否可以有效地完成(没有很多循环)?我用 squareform 创建了这个数组,但找不到任何文档来执行此操作。

python numpy scipy python-3.x pdist

0
推荐指数
1
解决办法
305
查看次数

在 Python 中将 .sav 文件转换为 .csv 文件

我想在Python中将*.sav文件的内容转换为*.csv文件。我编写了以下代码行来访问 *.sav 文件中变量的详细信息。现在,我不清楚如何将访问的变量数据写入带有标题的 .csv 文件

import scipy.io as spio
on2file = 'ON2_2015_112m_220415.sav'
on2data = spio.readsav(on2file, python_dict=True, verbose=True)
Run Code Online (Sandbox Code Playgroud)

以下是我运行上述代码行时的结果:

IDL Save file is compressed
 -> expanding to /var/folders/z4/r3844ql123jgkq1ztdr4jxrm0000gn/T/tmpVE_Iz6.sav
--------------------------------------------------
Date: Mon Feb 15 20:41:02 2016
User: zhangy1
Host: augur
--------------------------------------------------
Format: 9
Architecture: x86_64
Operating System: linux
IDL Version: 7.0
--------------------------------------------------
Successfully read 11 records of which:
 - 7 are of type VARIABLE
 - 1 are of type TIMESTAMP
 - 1 are of type NOTICE
 - 1 are of type VERSION …
Run Code Online (Sandbox Code Playgroud)

python csv numpy scipy

0
推荐指数
1
解决办法
1万
查看次数

导致此 pvlib 错误的原因:ImportError:Linke 浊度查找表需要 scipy

我编写了一个小程序,根据文档,使用 pvlib 的 ModelChain() 和 get_processed_data() 方法,获取纬度和经度并返回该站点的预测发电量。

一切都工作正常,直到大约一个小时前,当时 - 没有对我的 python 代码进行任何更改 - 我突然开始收到以下错误:

ImportError:Linke 浊度查找表需要 scipy。如果您提供自己的浊度,您仍然可以使用clearsky.ineichen。

快速谷歌告诉我这与 pvlib 中的“clearsky”模块有关 - 请参阅http://pvlib-python.readthedocs.io/en/latest/_modules/pvlib/clearsky.html

但是,我不知道为什么这突然不起作用,或者发生了什么变化。我在我的 IDE (cloud9) 中尝试了“pip install scipy”,并得到了响应:

已满足要求:/opt/pyenv/versions/3.6.0/lib/python3.6/site-packages 中的 scipy 已满足要求:/opt/pyenv/versions/3.6.0/lib/ 中的 numpy>=1.8.2 python3.6/site-packages(来自 scipy)

如果有人可以提供帮助,我将非常感激 - 我“非常接近”完成我的项目!

scipy python-3.x pvlib

0
推荐指数
1
解决办法
1490
查看次数

用 python 解决 ode 得到错误的解决方案

我想解决以下颂歌

K T + C T' = Q

给定的示例数据是我下面的代码

import numpy as np
import scipy as sp
# Solve the following ODE
# K*T + C*T' = Q
# T' = C^-1 ( Q - K * T )
T_start=sp.array([ 151.26,  132.18,  131.64,  146.55,  147.87,  137.87])

K = sp.array([[-0.01761969,  0.02704873,  0.00572222,  0.        ,  0.        ,
         0.        ],
       [ 0.02704873, -0.03546941,  0.        ,  0.        ,  0.00513177,
         0.        ],
       [ 0.00572222,  0.        ,  0.03001858, -0.04752982,  0.        ,
         0.02030505],
       [ 0.        ,  0. …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy ode differential-equations

0
推荐指数
1
解决办法
185
查看次数

标准化稀疏行概率矩阵

我有一个包含一些元素的稀疏矩阵。现在我想对其进行标准化。但是,当我这样做时,它会转换为 numpy 数组,从性能的角度来看,这是不可接受的。

为了使事情更具体,请考虑以下示例:

x = csr_matrix([[0, 1, 1], [2, 3, 0]])  # sparse
normalization = x.sum(axis=1)  # dense, this is OK

x / normalization  # this is dense, not OK, can be huge
Run Code Online (Sandbox Code Playgroud)

有没有一种优雅的方法可以做到这一点而不必诉诸 for 循环?

编辑

是的,这可以使用“l1”标准化来完成sklearn.preprocessing.normalize,但是,我不想依赖 sklearn。

python numpy scipy sparse-matrix

0
推荐指数
1
解决办法
1073
查看次数

如何优化Python中向量函数的最小化?

我有一个问题:我试图找到一个函数的最小值,该函数取决于我也想更改的几个参数。让我们举一个简化的例子:

import numpy as np
import scipy.optimize as opt
def f(x, a, b, c):
    f = a * x**2 + b * x + c
return f
Run Code Online (Sandbox Code Playgroud)

我想找到使 a、b、c 的不同值集的函数最小化的 x,比如说

a = [-1, 0, 1]
b = [0, 1, 2]
c = [0, 1]
Run Code Online (Sandbox Code Playgroud)

ATM 我有三个嵌套循环和一个最小化:

for p1 in a:
    for p2 in b:
         for p3 in c:
            y = opt.minimize(f, x0=[0, ], args=(p1, p2, p3, ))
            print(y)
Run Code Online (Sandbox Code Playgroud)

这对于我正在进行的计算来说确实很慢,但到目前为止我还没有找到更好的方法。那么,有谁知道一种可以让我提高效率的方法或方案吗?

python optimization numpy minimize scipy

0
推荐指数
1
解决办法
2502
查看次数

如何在Python中调用该库实现与matlab中dctmtx(N)相同的功能

在Python中,dct()scipy中和matlab中类似dct2(),那么Python中有没有类似于matlab中dctmtx的库呢?

python matlab numpy dct scipy

0
推荐指数
1
解决办法
739
查看次数