小编Jon*_*han的帖子

Python/Matplotlib:在给定截距和斜率的情况下将回归线添加到绘图中

使用以下小数据集:

bill = [34,108,64,88,99,51]
tip =  [5,17,11,8,14,5]  
Run Code Online (Sandbox Code Playgroud)

我计算了最佳拟合回归线(手动).

yi = 0.1462*x - 0.8188 #yi = slope(x) + intercept
Run Code Online (Sandbox Code Playgroud)

我使用Matplotlib绘制了原始数据,如下所示:

scatter(bill,tip, color="black")
plt.xlim(20,120) #set ranges
plt.ylim(4,18)

#plot centroid point (mean of each variable (74,10))
line1 = plt.plot([74, 74],[0,10], ':', c="red")
line2 = plt.plot([0,74],[10,10],':', c="red")

plt.scatter(74,10, c="red")

#annotate the centroid point
plt.annotate('centroid (74,10)', xy=(74.1,10), xytext=(81,9),
        arrowprops=dict(facecolor="black", shrink=0.01),
        )

#label axes
xlabel("Bill amount ($)")
ylabel("Tip amount ($)")

#display plot
plt.show()
Run Code Online (Sandbox Code Playgroud)

我不确定如何将回归线放到情节本身上.我知道有很多内置的东西可以快速拟合和显示最合适的线条,但我这样做是为了练习.我知道我可以在点'0,0.8188'(截距)处开始该线,但我不知道如何使用斜率值来完成该线(设置线端点).

鉴于x轴上的每次增加,斜率应增加"0.1462"; 对于起点我尝试(0,0.8188)的线坐标,以及(100,14.62)终点.但是这条线并没有通过我的质心点.它错过了它.

干杯,乔恩

python plot matplotlib linear-regression

5
推荐指数
2
解决办法
2万
查看次数

Bash:增加字符串中的计数器变量

在 Bash 中,我试图从文本字符串中增加一个计数器变量(数字)。如果我单独调用计数器变量,它会成功增加,但是如果我在循环的每次迭代中回显字符串变量,计数器变量不会增加。

#!/bin/bash

number=1

yes="number$number/"

for i in 1 2 3
do
    echo $number

    echo $yes

    ((number++))

done
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

1
number1/
2
number1/
3
number1/
Run Code Online (Sandbox Code Playgroud)

而我期望这一点:

1
number1/
2
number2/
3
number3/
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

yes="number${number}/"
Run Code Online (Sandbox Code Playgroud)

..这给出了同样的错误结果。

谢谢

bash shell

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

Python 中每个线程使用 Numba 并行时间

当我使用 numba 中的 njit 并行运行该程序时,我注意到使用多个线程并没有什么区别。事实上,从 1-5 个线程开始,时间会更快(这是预期的),但之后时间会变慢。为什么会发生这种情况?

\n
from numba import njit,prange,set_num_threads,get_num_threads\nimport numpy as np\n@njit(parallel=True)\ndef test(x,y):\n    z=np.empty((x.shape[0],x.shape[0]),dtype=np.float64)\n    for i in prange(x.shape[0]):\n        for j in range(x.shape[0]):\n            z[i,j]=x[i,j]*y[i,j]\n    return z\n
Run Code Online (Sandbox Code Playgroud)\n
x=np.random.rand(10000,10000)\ny=np.random.rand(10000,10000)\nfor i in range(16):   \n    set_num_threads(i+1)\n    print("Number of threads :",get_num_threads())\n    %timeit -r 1 -n 10 test(x,y)\n
Run Code Online (Sandbox Code Playgroud)\n
Number of threads : 1\n234 ms \xc2\xb1 0 ns per loop (mean \xc2\xb1 std. dev. of 1 run, 10 loops each)\nNumber of threads : 2\n178 ms \xc2\xb1 0 ns per loop (mean \xc2\xb1 std. …
Run Code Online (Sandbox Code Playgroud)

python parallel-processing multithreading numba

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