小编DYZ*_*DYZ的帖子

具有一个变量的数学表达式的C解析器并将其保存到函数中

我知道有一些libs,比如boost.spirit或来自http://jamesgregson.blogspot.de/2012/06/mathematical-expression-parser-in-c.html等许多其他的表达式解析器.

但是,我的表达式要在循环中进行很多次计算,并且每次运行解析器似乎效率很低.

假设我的表达式字符串是"exp(-0.5*(t-t_0)^2/(b^2))"(简单高斯),其中t_0b是常量,并且只有t(=时间)在循环内变化.

我希望能够以某种方式将表达式保存到接受一个参数(对于变量t)然后计算表达式的函数中,而不是调用解析器数百万次.

您是否知道如何做到这一点或者是否可以完成?

c parsing

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

CSV列表列表

我知道我可以直接写一个字典列表到CSV文件.同样,有没有直接的方法将字典列表列表写入python中的csv文件,而无需手动迭代每一行?

样本数据

[[{'e': 46, 'p': 100, 'n': 0, 'a': 100, ...}, 
  {'e': 29, 'p': 40, 'n': 1, 'a': 40, ...}, ...],
 [{...}, ...]
Run Code Online (Sandbox Code Playgroud)

预期的格式

e,p,n,a,....
46,100,0,100,....
29,40,1,40,...
.......
Run Code Online (Sandbox Code Playgroud)

请注意,这不是字典列表,而是字典列表的列表

python csv dictionary

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

如何根据指向的值对双指针数组进行排序?

我试图在C/C++中构建一个函数来对数组进行排序,并用它的"得分"或排名替换每个值.它将一个双指针数组接收到一个int数组,并根据整数的解除引用值对双指针进行排序.我已经尝试了很多次才能使它工作,但不能让它失效.它必须再次根据它们指向的值对双指针进行排序.这就是我所拥有的:

void SortArray( int ** pArray, int ArrayLength )
{
  int i, j, flag = 1;     // set flag to 1 to begin initial pass
  int * temp;             // holding variable orig with no *
  for(i = 1; (i <= ArrayLength) && flag; i++)
  {
    flag = 0;
    for (j = 0; j < (ArrayLength -1); j++)
    {
        if (*pArray[j+1] > *pArray[j])    // ascending order simply changes to <
        { 
            temp = &pArray[j];            // swap elements
            pArray[j] = &pArray[j+1];
            pArray[j+1] …
Run Code Online (Sandbox Code Playgroud)

c c++ arrays pointers reference

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

如何在矩阵中求和一行

写方法:

public int sumRow(int[][] matrix, int row)
Run Code Online (Sandbox Code Playgroud)

row在2D数组中对行进行求和,称为矩阵.

鉴于:

public void run()
{
    System.out.println(sumRow(new int[][]{{70,93,68,78,83},{68,89,91,93,72},{98,68,69,79,88}}, 2));
    System.out.println(sumRow(new int[][]{{1,1,1}, {2,2,2}, {3,3,3}}, 0));
    System.out.println(sumRow(new int[][]{{2,4,6,8,10}, {1,2,3,4,5}, {10,20,30,40,50}}, 2));
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,我有:

public int sumRow(int[][] matrix, int row)
{
    int sum = 0;
    for(int i = 0; i < matrix.length; i++)
    {
        for(int j = 0; j < matrix.length; j++)
        {
            sum = sum + matrix[j][i];
        }   
    }
    return sum;
}
Run Code Online (Sandbox Code Playgroud)

我得到的输出是714,18和78,它们应该是402,3和150.我做错了什么?

java multidimensional-array

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

如何使用ssh删除远程文件?

我正在开发一个项目,我们使用 2 个虚拟机,其中一个用作本地虚拟机并且可以访问,并且我们需要从该本地虚拟机访问远程虚拟机。在处理此问题时,我遇到了一个问题。目录中的远程目录中有一个文件。每次执行脚本时,该文件都会加载新数据,但我不需要它。我希望该文件是每次在我的脚本执行之前删除。

我已经给出了下面的代码。

if($ssh = ssh2_connect('192.168.150.85', 22)) {
     if(ssh2_auth_password($ssh, 'someUserName', 'somePassword')) {
         $stream = ssh2_exec($ssh, "python file_scanner.py /home/nsadmin/$file_name");
         $stream = ssh2_exec($ssh, 'rm /home/nsadmin/file_scanned');
         stream_set_blocking($stream, true);
         $data = '';
         while($buffer = fread($stream, 4096)) {
             $data .= $buffer;
         }
         fclose($stream);
         echo $data; // user
     }
 }
Run Code Online (Sandbox Code Playgroud)

在这里我们可以看到,在 ssh 连接之后,我执行了一些脚本,并且该文件的结果被附加到文件中file_scanned。但是当我执行 ssh 连接时,我之前的结果也会出现。所以我做到了$stream = ssh2_exec($ssh, 'rm /home/nsadmin/file_scanned');。但它不起作用。

有关如何更改或修改我的脚本的任何建议,以便我可以在执行上一个命令后删除该文件。

php ssh file rm

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

C++和C使用相同类型的链接器吗?

正如标题所示,C++和C在链接过程中是否使用相同类型的链接器?另外,对于C++和C的编译器,C++编译器是否构建在C编译器之上?

c c++ linker

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

使用 Regex 条件在 Pandas DataFrame 中创建新列

这是我的问题。

我知道如何基于 RegEx 创建一个布尔列,如下所示:

df['New Column'] = df.columnA.str.match(regex)
Run Code Online (Sandbox Code Playgroud)

在此示例中,“新列”将包含 True 或 False 值。

但是,如果我想使用一个条件来说明“如果我的 RegEx 返回 true,则推送“这个”值,如果它返回 False,则推送“那个”值,我该怎么做。

感谢您的帮助 :)

python dataframe pandas

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

熊猫类别比较

我在这里创建了一个示例数据框。

df = pd.DataFrame( np.random.randn(10,2), columns=list('AB'))    

          A         B
0  0.459759         0.152645

1  0.183613         0.756527

2 -1.836027         0.032433

3  0.264336         0.170171

4 -0.276347         0.208389

5  0.677709         0.725274

6 -0.547858         0.376683

7 -0.994759        -0.750373

8  0.556593         1.282167

9 -1.444533         0.589768

df['A_rank']= pd.qcut(df['A'],[0,0.25,0.5,0.75,1],duplicates="drop")

          A         B                A_rank
0  0.459759        0.152645         (0.411, 0.678]

1  0.183613        0.756527         (-0.0464, 0.411]

2 -1.836027        0.032433         (-1.837, -0.883]

3  0.264336        0.170171         (-0.0464, 0.411]

4 -0.276347        0.208389         (-0.883, -0.0464]

5  0.677709        0.725274         (0.411, 0.678]

6 -0.547858        0.376683        (-0.883, -0.0464]

7 -0.994759 …
Run Code Online (Sandbox Code Playgroud)

python comparison categories dataframe pandas

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

将熊猫数据框中的每日数据转换为每月数据

我的数据框中有每日股票数据:

       Date       AAPL      NFLX       INTC  
0 2008-01-02  27.834286  3.764286  25.350000    
1 2008-01-03  27.847143  3.724286  24.670000    
2 2008-01-04  25.721428  3.515714  22.670000   
3 2008-01-07  25.377142  3.554286  22.879999    
4 2008-01-08  24.464285  3.328571  22.260000  
Run Code Online (Sandbox Code Playgroud)

我想在上面的 df 中使用每个月的最后一天计算每月回报。我猜(在谷歌搜索之后)重新采样是选择当月最后一个交易日的最佳方式。但这似乎不起作用:

df.set_index('Date')  
m1= df.resample('M')
print(m1)
Run Code Online (Sandbox Code Playgroud)

得到这个错误:

类型错误:仅对 DatetimeIndex、TimedeltaIndex 或 PeriodIndex 有效,但得到了“Index”的实例

所以我认为这意味着 set_index 不起作用?

我也试过:

df= df.reset_index().set_index('Date')  
m1= df.resample('M')
print(m1)
Run Code Online (Sandbox Code Playgroud)

但我收到与上述相同的错误消息。非常感谢您的帮助。

python pandas

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

AWK:计算数字幂时获取+nan

使用变量时出现问题

echo ""| awk '{
x=-0.35
print x^1.35
print -0.35^1.35
}'
Run Code Online (Sandbox Code Playgroud)

结果

+nan
-0.242377
Run Code Online (Sandbox Code Playgroud)

使用 GNU awk

math floating-point awk nan

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