小编chr*_*ock的帖子

来自ps的列的含义

在Linux bash中,这四列是什么意思ps

例如

PID   TTY         TIME CMD
15286 pts/498 00:00:00 bash
30887 pts/498 00:00:00 ps
Run Code Online (Sandbox Code Playgroud)

linux bash ps

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

(kdb+/q) 是否可以连接或组合行?

这是我的情况: 我目前有一个数据表,如下所示:

Symbol    Date          Time             Sequence       Type
---------------------------------------------------------------------------
A      2013.06.06      20:00:00.137   36654383         BestAsk
A      2013.06.06      20:00:00.137   36654383         BestBid
A      2013.06.07      04:00:00.788   3                BestAsk
A      2013.06.07      04:00:00.788   3                BestBid
A      2013.06.07      04:00:00.788   3                BestAsk
A      2013.06.07      04:00:00.788   3                BestBid
A      2013.06.07      07:01:09.584   43126            BestAsk
A      2013.06.07      07:01:09.584   43126            BestBid
A      2013.06.07      07:02:09.012   43431            BestAsk
A      2013.06.07      07:02:09.012   43431            BestBid
Run Code Online (Sandbox Code Playgroud)

如您所知,这些行是成对出现的。每个 BestAsk 和 BestBid 行都有相同的符号日期时间和序列。由于它们都很好地排序,我认为可以根据它们的顺序组合行,但我查看的所有连接命令仅组合列(aj,aj0等)。我尝试将表格翻转成字典,然后以字典形式组合,但没有成功。

我在结果中寻找的是相同的值 Symbol Date Time Sequence 不必重复,但在 Type 列中显示 BestAsk 和 BestBid :

Symbol   Date          Time             Sequence       Type …
Run Code Online (Sandbox Code Playgroud)

kdb q-lang

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

Pandas GroupBy CSV中大数据集的平均值

一个常见的SQL主义是"从表中选择A,意味着(X)A",我想在熊猫中复制它.假设数据存储在类似CSV文件的内容中,并且太大而无法加载到内存中.

如果CSV可以适合内存,一个简单的双线程就足够了:

data=pandas.read_csv("report.csv")
mean=data.groupby(data.A).mean()
Run Code Online (Sandbox Code Playgroud)

当CSV无法读入内存时,可以尝试:

chunks=pandas.read_csv("report.csv",chunksize=whatever)
cmeans=pandas.concat([chunk.groupby(data.A).mean() for chunk in chunks])
badMeans=cmeans.groupby(cmeans.A).mean()
Run Code Online (Sandbox Code Playgroud)

除了生成的cmeans表包含A的每个不同值的重复条目,对于不同块中的A值的每个外观都有一个(因为read_csv的chunksize对分组字段一无所知).因此,最终的badMeans表有错误的答案......它需要计算加权平均值.

所以一种工作方法似乎是这样的:

final=pandas.DataFrame({"A":[],"mean":[],"cnt":[]})
for chunk in chunks:
    t=chunk.groupby(chunk.A).sum()
    c=chunk.groupby(chunk.A).count()
    cmean=pandas.DataFrame({"tot":t,"cnt":c}).reset_index()
    joined=pandas.concat(final,cmean)
    final=joined.groupby(joined.A).sum().reset_indeX()

mean=final.tot/final.cnt
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?这看起来非常复杂......我宁愿写一个逐行处理CSV的for循环而不是处理它.一定有更好的方法.

python pandas

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

从kdb实例检入列表

我将字符串存储在变量名res下的列表中.接下来,我构建一个查询字符串列表的查询.然而,似乎没有读取变量.

这就是我的意思:

q) hdl: (to a port)
q) res: `string1`string2`string3
**q) ans: hdl"select count i by date,sym from trade where date=xxx, sym in `res"**
Run Code Online (Sandbox Code Playgroud)

当我执行命令时,我总是得到一个空的结果集.我知道结果集不能为空.那么如何修复我的查询(以粗体显示)以返回结果?

请注意我正在unix框中的aq会话中执行任务.

kdb q-lang

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

如何在 KDB 中流式传输数据?

我可以访问一个实时 KDB 服务器,该服务器具有每毫秒到达的新数据表。

目前,我只是使用一种简单的方法,它基本上是这样的:

.z.ts:{
    newData: getNewData[];   / get data arriving in the last second
    data::data uj newData;
};
\t 100;
Run Code Online (Sandbox Code Playgroud)

确保我的数据(名为data)不断更新。

然而,uj它非常慢(可能是由于内存的不断重新分配)并且轮询只是很尴尬。

我听说 KDB 旨在擅长处理这种流式刻度数据,那么有更好的方法吗?也许一些不需要的基于推送的方法uj

real-time kdb q-lang

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

如何使用逻辑运算符访问和更改Python数组?

我想知道如何在Python中执行以下MATLAB语句:

X(0.80 < X & X < 1) = 1;
Run Code Online (Sandbox Code Playgroud)

这句话说:Put 1 in the indices where the value of X is between 0.8 and 1.

我正在寻找NumPy Python列表数组的解决方案.

谢谢.

我试过了:

X[X > 0.8 and X < 1]
Run Code Online (Sandbox Code Playgroud)

但它说: ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

python matlab numpy

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

我如何在同一个类(C++,MFC)中调用工作线程?

这是我的代码,其中包含错误:

void ClassA::init()
{
    HANDLE hThread;
    data thread;          // "thread" is an object of struct data

    hThread = CreateThread(NULL, 0, C1::threadfn, &thread, 0, NULL);
}

DWORD WINAPI ClassA::threadfn(LPVOID lpParam)
{   
    data *lpData = (data*)lpParam;
}
Run Code Online (Sandbox Code Playgroud)

错误:

error C3867: 'ClassA::threadfn': function call missing argument list; use '&ClassA::threadfn' to create a pointer to member
Run Code Online (Sandbox Code Playgroud)

使工作线程在单个类中工作的正确方法是什么?

c++ mfc

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

在linux中使用C进行广播后获取IP地址

我在Linux下用C编写了一个简单的客户端服务器程序.我创建了UDP套接字.客户端使用广播消息

sendto(clientsock, buf, 100, 0, (struct sockaddr *)&to, sizeof (to)); 
Run Code Online (Sandbox Code Playgroud)

服务器使用接收广播的消息

recvfrom(serversock, buf, 100, 0, (struct sockaddr *)&rcv,&size);
Run Code Online (Sandbox Code Playgroud)

服务器正在成功接收消息.在服务器端,我需要找到收到的消息的源IP地址.我怎样才能做到这一点 ?

c linux networking gcc

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

C - 将当前日期放在文件名中

我有4个值:A,B,C,D.在使用这些值进行一组计算之后,我希望我的代码将结果输出到表单的文件中ABCD_MM.DD.YY.txt,以跟踪它何时完成.

我不太确定在C中做到这一点的最佳方法.我有一个"工作"版本使用itoa(),它不是标准的C函数,并且在编译时会在我的机器上无法识别(并且已经消失).

这是我执行此操作的代码,有人可以帮助更好(并且普遍接受)的方式吗?char数组name是使用全局范围定义的.

void setFileName(){  

    time_t now;

    struct tm *today;  
    char date[9];

    //get current date  
    time(&now);  
    today = localtime(&now);

    //print it in DD.MM.YY format.
    strftime(date, 15, "%d.%m.%Y", today);

    char buff[20];
    char vars[20];

    //put together a string of the form:
    //"ABCD_DD.MM.YY.txt"
    strcpy(vars, itoa(A, buff, 20));
    strcat(vars, itoa(B, buff, 20));
    strcat(vars, itoa(C, buff, 20));
    strcat(vars, itoa(D, buff, 20));

    strcpy(name, vars);
    strcat(name, "_");
    strcat(name, date);
    strcat(name, ".txt");
}
Run Code Online (Sandbox Code Playgroud)

c string

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

使用MPI_Allgather分发结构

我必须使用一个结构发送到所有进程MPI_Allgather().我似乎没有任何明显的错误,但代码不起作用.当我检查是否收到任何值时recv[],它显示没有.如果我只使用类似的代码发送单个变量而不是结构,那么这是有效的,所以我不确定发生了什么.该结构具有静态数组,因此内存应该是连续的,或者我应该使用MPI_Pack什么?这是代码:

#include <stdio.h>
#include <stdlib.h>
#include "mpi.h"

#define NUMEL 21
struct mystruct{
 int sendarray[10];
 int a;
 char array2[10];
};

typedef struct mystruct struct_t;

int main (int argc, char ** argv)
{
 MPI_Status status;
 int rank, size;
 char *recv;
 int i, j;
 MPI_Init(&argc, &argv);
 MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 MPI_Comm_size(MPI_COMM_WORLD, &size);
 // init
 struct_t * fd = (struct_t*)malloc(sizeof(*fd));;
 for (i=0;i<10;i++){
    fd->sendarray[i] = 0;
    fd->array2[i] = 0;
 }
 recv = (char *) malloc ( size*NUMEL);

 // put some stuff …
Run Code Online (Sandbox Code Playgroud)

c mpi

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

标签 统计

c ×3

kdb ×3

q-lang ×3

linux ×2

python ×2

bash ×1

c++ ×1

gcc ×1

matlab ×1

mfc ×1

mpi ×1

networking ×1

numpy ×1

pandas ×1

ps ×1

real-time ×1

string ×1