相关疑难解决方法(0)

python tilde unary operator as negation numpy bool array

应该是一个简单的问题,但我无法在任何地方找到答案.~python中的运算符被记录为按位反转运算符.精细.我注意到看似精神分裂的行为,即:

~True -> -2
~1 -> -2
~False -> -1
~0 -> -1
~numpy.array([True,False],dtype=int) -> array([-2,-1])
~numpy.array([True,False],dtype=bool) -> array([False,True])
Run Code Online (Sandbox Code Playgroud)

在前4个示例中,我可以看到python正在实现(如文档所述)~x = -(x+1),输入被视为int,即使它是布尔值.因此,对于标量布尔值,~不被视为逻辑否定.并非在使用int类型的布尔值定义的numpy数组上的行为相同.

~那么为什么在布尔数组上作为逻辑否定运算符工作(另请注意:~numpy.isfinite(numpy.inf) -> True?)?

我必须not()在标量上使用它是非常烦人的,但是not()无法否定数组.然后对于一个数组,我必须使用~,但~不会否定一个标量......

python boolean numpy multidimensional-array

35
推荐指数
1
解决办法
9423
查看次数

如何将线性回归应用于包含NaN的大型多维数组中的每个像素?

我有一个独立变量值的一维数组(x_array),它与具有多个时间步长()的3D numpy空间数据数组中的时间步长相匹配y_array.我的实际数据要大得多:300+时间步长和高达3000*3000像素:

import numpy as np
from scipy.stats import linregress

# Independent variable: four time-steps of 1-dimensional data 
x_array = np.array([0.5, 0.2, 0.4, 0.4])

# Dependent variable: four time-steps of 3x3 spatial data
y_array = np.array([[[-0.2,   -0.2,   -0.3],
                     [-0.3,   -0.2,   -0.3],
                     [-0.3,   -0.4,   -0.4]],

                    [[-0.2,   -0.2,   -0.4],
                     [-0.3,   np.nan, -0.3],
                     [-0.3,   -0.3,   -0.4]],

                    [[np.nan, np.nan, -0.3],
                     [-0.2,   -0.3,   -0.7],
                     [-0.3,   -0.3,   -0.3]],

                    [[-0.1,   -0.3,   np.nan],
                     [-0.2,   -0.3,   np.nan],
                     [-0.1,   np.nan, np.nan]]])
Run Code Online (Sandbox Code Playgroud)

我想计算每个像素的线性回归,将获得的R平方,P值,截距和斜率为每个xy像素y_array,为每个时间步长值 …

python arrays numpy scipy python-xarray

9
推荐指数
3
解决办法
800
查看次数

使用pandas数据帧的简单线性回归

我想查看一些实体的趋势(SysNr)

我的数据跨越3年(2014,2015,2016)

我正在查看大量变量,但会将此问题限制为一个('res_f_r')

我的DataFrame看起来像这样

d = [
    {'RegnskabsAar': 2014, 'SysNr': 1, 'res_f_r': 350000},
    {'RegnskabsAar': 2015, 'SysNr': 1, 'res_f_r': 400000},
    {'RegnskabsAar': 2016, 'SysNr': 1, 'res_f_r': 450000},
    {'RegnskabsAar': 2014, 'SysNr': 2, 'res_f_r': 350000},
    {'RegnskabsAar': 2015, 'SysNr': 2, 'res_f_r': 300000},
    {'RegnskabsAar': 2016, 'SysNr': 2, 'res_f_r': 250000},
]

df = pd.DataFrame(d)



   RegnskabsAar  SysNr  res_f_r
0          2014      1   350000
1          2015      1   400000
2          2016      1   450000
3          2014      2   350000
4          2015      2   300000
5          2016      2   250000
Run Code Online (Sandbox Code Playgroud)

我的愿望是对每个实体(SysNr)进行线性回归并返回斜率和截距

我想要的输出是上面的

   SysNr  intercept  slope
0 …
Run Code Online (Sandbox Code Playgroud)

python numpy linear-regression pandas

5
推荐指数
1
解决办法
3603
查看次数

使用NaN的Python线性回归

values=([0,2,1,'NaN',6],[4,4,7,6,7],[9,7,8,9,10])
time=[0,1,2,3,4]
slope_1 = stats.linregress(time,values[1]) # This works
slope_0 = stats.linregress(time,values[0]) # This doesn't work
Run Code Online (Sandbox Code Playgroud)

有没有办法忽略NaN并对剩余值进行线性回归?

非常感谢。

-gv

python linear-regression

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

使用scipy的Y值包含NAN的线性回归

我有两个一维数组,我想做一些线性回归.我用了:

slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
Run Code Online (Sandbox Code Playgroud)

但是斜率和截距总是NAN,NAN.我读了一点,我发现如果x或y有一些NAN,那就是预期的结果.我试过这个 解决方案,但它不起作用,因为在我的情况下,只有y包含一些NAN; 不是x.所以使用该解决方案,我有错误: ValueError: all the input array dimensions except for the concatenation axis must match exactly.

我该如何解决这个问题?

python arrays numpy scipy linear-regression

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