小编Iva*_*van的帖子

从数据帧Spark中过滤大量ID

我有一个大型数据帧,格式类似于

+-----+------+------+
|ID   |Cat   |date  |
+-----+------+------+
|12   | A    |201602|
|14   | B    |201601|
|19   | A    |201608|
|12   | F    |201605|
|11   | G    |201603|
+-----+------+------+
Run Code Online (Sandbox Code Playgroud)

我需要根据一个包含大约5000万个ID的列表来过滤行.直截了当的方式是过滤isin但是性能非常糟糕.如何完成此过滤器?

python apache-spark pyspark

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

Python 中的 Selenium webdriver 屏幕截图分辨率错误

I\xc2\xb4m 在 Windows 10 上使用 selenium 和 Firefox geckodriver 进行屏幕截图

\n\n
delay = 5\nbrowser = webdriver.Firefox(executable_path="C:\\\\Users\\\\A0048436\\\\Downloads\\\\geckodriver.exe")\nbrowser.set_window_size(1920, 1080)\nbrowser.get(\'file://\' + html_file)\ntime.sleep(delay)\nbrowser.save_screenshot(html_file + \'.png\')\nbrowser.quit()\n
Run Code Online (Sandbox Code Playgroud)\n\n

所以我预计图像分辨率将是窗口大小,但它\xc2\xb4s不是 - 它\xc2\xb4s更低。如何设置截图分辨率?

\n

python selenium

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

在整个文件范围内设置std :: cout的精度 - C++ iomanip

我正在做一些计算,结果将保存在文件中.我必须输出非常精确的结果,接近双变量的精度,并且我正在使用iomanip setprecision(int).问题是我必须在输出中的任何地方放置setprecision,如下所示:

func1() {
cout<<setprecision(12)<<value;
cout<<setprecision(10)<<value2;
}
func2() {
cout<<setprecision(17)<<value4;
cout<<setprecision(3)<<value42;
}
Run Code Online (Sandbox Code Playgroud)

这非常麻烦.有没有办法更一般地设置cout固定修饰符?

谢谢

c++ cout iomanip

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

如何用Python编写带注释的输入文件

我需要为python程序编写一些输入数据文件,我需要完整的东西:

注释,间距,变量=值等

是否有任何库(用于命令行参数的argparser行)或者我应该编写自己的库?

谢谢!

python comments

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

限制Tableau上具有单值(列表)类型的快速筛选器上的选项数

假设维度有五个项目:

cars
buses
airplanes
bicycles
boats
Run Code Online (Sandbox Code Playgroud)

我选择快速过滤器为单值(列表).我希望能够只选择汽车,公共汽车和自行车.如何在Tableau上使用单个值(列表)限制快速筛选器上的选项数?

tableau-api

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

按条件和列中的最小值过滤 Pandas 数据框

我有一个类似于

  test_a test_b  metric_e
0     OK    NOK        12
1     OK     OK         7
2     OK    NOK         2
3     OK     OK        55
Run Code Online (Sandbox Code Playgroud)

我想按一个条件过滤,这意味着test_a == OK并捕获metric_e. 我可以用两行来完成,复制一个数据帧:

df_t = df[df.test_a == 'OK'].reset_index(drop=True)
df_t.iloc[df_t.metric_e.idxmin()].to_frame()

test_a | test_b | metric_e
OK     |  NOK   | 2
Run Code Online (Sandbox Code Playgroud)

有没有办法在不必使用中间数据帧的情况下做到这一点?

python pandas

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

cos(atan2(y,x))与使用复数<double>,C++的精度

我正在写一些坐标变换(更具体地说是Joukoswky变换,维基百科Joukowsky变换),我对性能很感兴趣,但当然精确.我试图以两种方式进行坐标转换:

1)使用双精度计算单独的实部和复杂部分,如下所示:

double r2 = chi.x*chi.x + chi.y*chi.y;

//double sq = pow(r2,-0.5*n) + pow(r2,0.5*n); //slow!!!
double sq = sqrt(r2); //way faster!
double co = cos(atan2(chi.y,chi.x));
double si = sin(atan2(chi.y,chi.x));

Z.x = 0.5*(co*sq + co/sq);
Z.y = 0.5*si*sq;
Run Code Online (Sandbox Code Playgroud)

其中chi和Z是简单的结构,其中x和y为成员.

2)使用复杂:

Z = 0.5 * (chi + (1.0 / chi));
Run Code Online (Sandbox Code Playgroud)

Z和chi很复杂.有趣的是,确实情况1)更快(约20%),但精度差,在逆变换后的逗号后面的第三个十进制数中给出错误,而复数返回确切的数字.那么,问题在于cos(atan2),sin(atan2)?但如果是的话,复合体如何处理呢?

编辑:刚才发现这不是我想到的问题.我必须做一般转型,如

Z = 1/2*(chi ^ n +(1/chi)^ n),到目前为止,上面的代码是我想要的方式.更确切地说,

    double sq = pow(sqrt(r2),n); //way faster!
double co = cos(n*atan2(chi.y,chi.x));
double si = sin(n*atan2(chi.y,chi.x));

Z.x = 0.5*(co*sq + co/sq);
Z.y = …
Run Code Online (Sandbox Code Playgroud)

c++ performance numbers complex-numbers atan2

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

python:使用类方法迭代

我还在挖掘python,而且我的C++背景有一些东西在阻碍.例如,我有一个班级

class crack(object):

   def __init__(self, sz1,sz2):
        self.z1 = sz1
        self.z2 = sz2

   def smallz_Z(self,z,z1,z2):
       return z - 0.5*(z2-z1)

   def get_pot(self,z):
        Z = smallz_Z(z,self.z1,self.z2)

        try:
             result = np.sum(np.arange(self.n) * self.coeffs * (1.0 / (cmath.sqrt(Z - 1.0) * cmath.sqrt(Z + 1.0))) 
                        * ((Z - cmath.sqrt(Z - 1.0) * cmath.sqrt(Z + 1.0)) ** np.arange(self.n))) * (2.0 / (self.z2 - self.z1))
Run Code Online (Sandbox Code Playgroud)

我要创建一个破解元素列表,

crack_list = []
crack_list.append(crack(z1,z2)) ...
Run Code Online (Sandbox Code Playgroud)

现在我需要使用迭代器来获取所有潜在的值,例如matplotlib轮廓函数.我做不到这样的事情:

result = np.sum(crack_list.get_potential(z))
Run Code Online (Sandbox Code Playgroud)

现在我正在做'传统'的方式:

def potential_value(z, crack_list):
     potential = complex(0, 0)

     for element in crack_list:
     potential …
Run Code Online (Sandbox Code Playgroud)

python numpy matplotlib

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