小编Jan*_*ora的帖子

如何在python中使用pickle追加?

我需要附加到一个pickle文件(因为我没有随身携带整个字典).所以为了做同样的事情,我写了以下代码:

 import pickle
 p={}
 p[1]=2
 q={}
 q['a']=p
 p={}
 p[2]=0
 pickle.dump(q, open("save12.p","ab"))
 f={}
 f['b']=p
 pickle.dump(f,open("save12.p","ab"))
Run Code Online (Sandbox Code Playgroud)

但是,当我加载pickle文件时,我没有找到字典f的值吗?????

有人可以建议我应该如何附加在pickle文件中?

此外,像'dbm'这样的数据库不能满足我的需求,因为我正在使用Windows

python python-2.7

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

将csv文件中存在的NULL值复制到postgres

我有以下格式的csv文件(y.csv):

 's', '1999-10-10', '1999-12-12'
 'b', '99-10-10 BC', '1-10-10 BC'
 'c', 'NULL', 'NULL'
Run Code Online (Sandbox Code Playgroud)

我在其中有一些NULL值(日期),我通过字符串'NULL'表示.

我试图将csv文件复制到postgres.为此,我创建了一个表:

create table r (id character varying(255), timebegin date, timeend date);
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用该命令将上述.csv文件复制到postgres中

copy r from '/home/y.csv' delimiter ',' csv;
ERROR:  invalid input syntax for type date: " 'NULL'"
CONTEXT:  COPY r, line 1, column timebegin: " 'NULL'"
Run Code Online (Sandbox Code Playgroud)

这样做我收到NULL错误.有人可以帮我找出错误并纠正错误.

csv postgresql

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

构建用于计算协方差的函数

有没有一种方法可以在python中获得给定均值和样本数据点的协方差矩阵

例:

mean = [3 3.6]
data = [[1 2]
        [2 3]
        [3 3]
        [4 5] 
        [5 5]]
Run Code Online (Sandbox Code Playgroud)

我知道如何通过在公式中替换这些值来计算相同的值.但是在python中是否有一个内置函数可以为我做这个.我知道Matlab中有一个,但我不确定python.

python numpy covariance scipy

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

如何使用linux限制行中存在的字符串长度

我有以下形式的数据:

num1    This is a string
num2    This is another string
Run Code Online (Sandbox Code Playgroud)

我想限制在第一个标签之后的所有字符串的长度.这样长度(字符串)<4.因此,我得到的输出是:

num1    This is a string
num2    This is another 
Run Code Online (Sandbox Code Playgroud)

我可以使用python来做到这一点.但我试图找到一个Linux等价物,以实现相同.

linux bash ubuntu

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

有关dijkstra算法的查询

我试图找到数据集中两个节点之间的最短路径.我实现了dijkstra算法并使用它来证明给定两个节点(例如:Andrew_Card和Dick_Cheney),源和目标之间不存在路径.但是,我发现我的程序被操作系统杀死了.

调试后我发现问题可能与RAM中的资源分配有关.至于dijkstra算法,如果节点数n = 16,375,503,那么空间要求是

 n*n = 16,375,503 * 16,375,503 > 10^{14}. 
Run Code Online (Sandbox Code Playgroud)

要在内存中运行此算法,我们至少需要

(10^{14} * 4) / (1024 * 1024 * 1024) = 10^5 GB  (approximately equal)
of RAM.  
Run Code Online (Sandbox Code Playgroud)

因此,如果我们打算在内存中保留一个大的连通图,则无法使用dijkstra找到最短路径.如果我错了,请纠正我,因为我很长时间以来一直坚持这个?或者,如果可能有其他可能的原因我应该检查,那么请指出我.

我用C++实现了这个程序

边数= 25,908,132

c++ algorithm

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

如何使用nanosparqlserver将rdf数据加载到bigdata

我已经下载了bigdata.war并使用sesame HTTP API进行了部署.现在我不知道如何使用nanosparqlserver将rdf三元组/出处加载到bigdata?我正在使用sesame HTTP API(使用apache tomcat).有人可以请帮助.

我打算使用mysql,native java和postgres with sesame

apache rdf http blazegraph

6
推荐指数
0
解决办法
243
查看次数

找到基数为10的指数和尾数

我需要将double类型的数值分成:exponent和mantissa.我发现我可以使用frexp()函数来完成这个math.h.但是,此函数假定基数为2.

我是否可以通过某种方式找到指向基数10的指数和尾数 - 这样返回的尾数和指数都是整数类型.

#include <cstdio>
#include <cmath>

int main()
{
   int e;
   const double x = 1024;
   const double fraction = frexp(x, &e);
   std::printf("x = %.2lf = %.2lf * 2^%d\n", x, fraction, e);
}
Run Code Online (Sandbox Code Playgroud)

我的编译器是:gcc(Ubuntu/Linaro 4.6.4-6ubuntu2)4.6.4

c++

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

"没有媒体发现".如何在android中插入图像

我是Android编程的新手,所以如果有人帮助我,我将非常感激.

我试图在android中实现隐写术,但我的问题是我不知道如何在android中插入图像.因为我得到了"No media found".请帮我解决一下这个.

我试过了

c:> adb push c:\ image1.png /sdcard/image1.png

但我在命令提示符中得到了这个.

无法将'c:\ image1.png'复制到'sdcard/image1.png':只读文件系统

android

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

有没有一种有效的方法将numpy.ndarray转换成列表?

我有一个表格的数组Y(这只是一个例子,我有一个巨大的数据在这种形式).该数组是使用numpy的vstack和hstack形成的(即我不想改变我获取这个数组的方式,因为我通过一些复杂的操作获得了它):

 Y=array([[1,  1,2],
        [1,  2,0],
        [-1, 3,1],
        [-1, 2,2]])
y=[1,1,-1,-1]
Y1=list(Y)
Run Code Online (Sandbox Code Playgroud)

现在我将数据输入到libsvm函数,该库期望输入参数是字典,列表或元组形式.因此,相同的代码是:

prob=svm_problem(y, Y1)
Run Code Online (Sandbox Code Playgroud)

上面的函数抛出一个'xi应该是字典,列表或元组'的错误.我知道的另一种方法是迭代地将Y转换为列表.这样做的方式是:

Y1=[] 
for i in range(0, Y.shape[0]):
      Y1.append(list(Y[i])
Run Code Online (Sandbox Code Playgroud)

考虑到我拥有的庞大数据,上述方法运行良好但速度很慢.有没有更快的方法来实现同样的目标?

python numpy scipy libsvm python-2.7

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

std::remove_if 中谓词函数的用法

我有一个对象向量。我的数据结构如下:

 class my_class{
       float a; int b;
 };
 my_class obj;
 vector<my_class> vec;
Run Code Online (Sandbox Code Playgroud)

向量 vec 包含以下形式的数据:

 vec
 ((10.0,2),(100,3),(19.0,3)...)
Run Code Online (Sandbox Code Playgroud)

现在,我打算从向量 vec 中删除小于或等于 vec 最后一个元素的元素...为此,我使用擦除和remove_if函数:

vec.erase(std::remove_if(vec.begin(), vec.end(), predicate_function(vec, (vec.end()-1).a, (vec.end()-1).b)), vec.end());
Run Code Online (Sandbox Code Playgroud)

我拥有的 predicate_function 对“vec”进行迭代。然而,这违背了使用 std::remove_if 的目的。有人可以帮助了解 predicate_function 应该是什么样子才能使remove_if 起作用吗?我不想使用 lambda_function。另外我的编译器是GCC

c++

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

标签 统计

c++ ×3

python ×3

numpy ×2

python-2.7 ×2

scipy ×2

algorithm ×1

android ×1

apache ×1

bash ×1

blazegraph ×1

covariance ×1

csv ×1

http ×1

libsvm ×1

linux ×1

postgresql ×1

rdf ×1

ubuntu ×1