- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 cPickle 将我的数据库保存到文件中。代码如下所示:
def Save_DataBase():
import cPickle
from scipy import *
from numpy import *
a=Results.VersionName
#filename='D:/results/'+a[a.find('/')+1:-a.find('/')-2]+Results.AssType[:3]+str(random.randint(0,100))+Results.Distribution+".lft"
filename='D:/results/pppp.lft'
plik=open(filename,'w')
DataOutput=[[[DataBase.Arrays.Nodes,DataBase.Arrays.Links,DataBase.Arrays.Turns,DataBase.Arrays.Connectors,DataBase.Arrays.Zones],
[DataBase.Nodes.Data,DataBase.Links.Data,DataBase.Turns.Data,DataBase.OrigConnectors.Data,DataBase.DestConnectors.Data,DataBase.Zones.Data],
[DataBase.Nodes.DictionaryPy2Vis,DataBase.Links.DictionaryPy2Vis,DataBase.Turns.DictionaryPy2Vis,DataBase.OrigConnectors.DictionaryPy2Vis,DataBase.DestConnectors.DictionaryPy2Vis,DataBase.Zones.DictionaryPy2Vis],
[DataBase.Nodes.DictionaryVis2Py,DataBase.Links.DictionaryVis2Py,DataBase.Turns.DictionaryVis2Py,DataBase.OrigConnectors.DictionaryVis2Py,DataBase.DestConnectors.DictionaryVis2Py,DataBase.Zones.DictionaryVis2Py],
[DataBase.Paths.List]],[Results.VersionName,Results.noZones,Results.noNodes,Results.noLinks,Results.noTurns,Results.noTrips,
Results.Times.VersionLoad,Results.Times.GetData,Results.Times.GetCoords,Results.Times.CrossTheTime,Results.Times.Plot_Cylinder,
Results.AssType,Results.AssParam,Results.tStart,Results.tEnd,Results.Distribution,Results.tVector]]
cPickle.dump(DataOutput, plik, protocol=0)
plik.close()`
而且效果很好。我的大部分数据库行都是列表、类向量或类数组数据集的列表。
但是现在当我输入数据时,出现错误:
def Load_DataBase():
import cPickle
from scipy import *
from numpy import *
filename='D:/results/pppp.lft'
plik= open(filename, 'rb')
""" first cPickle load approach """
A= cPickle.load(plik)
""" fail """
""" Another approach - data format exact as in Output step above , also fails"""
[[[DataBase.Arrays.Nodes,DataBase.Arrays.Links,DataBase.Arrays.Turns,DataBase.Arrays.Connectors,DataBase.Arrays.Zones],
[DataBase.Nodes.Data,DataBase.Links.Data,DataBase.Turns.Data,DataBase.OrigConnectors.Data,DataBase.DestConnectors.Data,DataBase.Zones.Data],
[DataBase.Nodes.DictionaryPy2Vis,DataBase.Links.DictionaryPy2Vis,DataBase.Turns.DictionaryPy2Vis,DataBase.OrigConnectors.DictionaryPy2Vis,DataBase.DestConnectors.DictionaryPy2Vis,DataBase.Zones.DictionaryPy2Vis],
[DataBase.Nodes.DictionaryVis2Py,DataBase.Links.DictionaryVis2Py,DataBase.Turns.DictionaryVis2Py,DataBase.OrigConnectors.DictionaryVis2Py,DataBase.DestConnectors.DictionaryVis2Py,DataBase.Zones.DictionaryVis2Py],
[DataBase.Paths.List]],[Results.VersionName,Results.noZones,Results.noNodes,Results.noLinks,Results.noTurns,Results.noTrips,
Results.Times.VersionLoad,Results.Times.GetData,Results.Times.GetCoords,Results.Times.CrossTheTime,Results.Times.Plot_Cylinder,
Results.AssType,Results.AssParam,Results.tStart,Results.tEnd,Results.Distribution,Results.tVector]]= cPickle.load(plik)`
错误是(在这两种情况下):
Traceback (most recent call last):
File "D:\programy\projekt_eclipse\src\Praca\wx_frame.py", line 342, in LoadDatabase_Handler
Load_DataBase()
File "D:\programy\projekt_eclipse\src\Praca\wx_frame.py", line 1804, in Load_DataBase
A= cPickle.load(plik)
ImportError: No module named multiarray
有什么想法吗?
附言。现在我已经解决了问题,部分地说:/我需要更改数组的格式。我试图追踪错误,但我做不到。导致错误的变量是这个 (long :) ) :
[[ 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00]
[ 1.00000000e+00 0.00000000e+00 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 0.00000000e+00]
[ 2.00000000e+00 0.00000000e+00 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.52875186e+04]
[ 3.00000000e+00 0.00000000e+00 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.24880978e+04]
[ 4.00000000e+00 0.00000000e+00 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.24880978e+04]
[ 5.00000000e+00 0.00000000e+00 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.24880978e+04]
[ 6.00000000e+00 0.00000000e+00 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.24880978e+04]
[ 7.00000000e+00 0.00000000e+00 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.24880978e+04]
[ 8.00000000e+00 0.00000000e+00 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.59846476e+04]
[ 9.00000000e+00 0.00000000e+00 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 0.00000000e+00]
[ 1.00000000e+01 1.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.97583022e+04]
[ 1.10000000e+01 1.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.84929461e+04]
[ 1.20000000e+01 1.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.76891311e+03]
[ 1.30000000e+01 1.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 5.10636164e+03]
[ 1.40000000e+01 1.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.45841100e+03]
[ 1.50000000e+01 1.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 4.22093915e+03]
[ 1.60000000e+01 1.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.20282091e+03]
[ 1.70000000e+01 1.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.86566159e+04]
[ 1.80000000e+01 1.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.80902598e+04]
[ 1.90000000e+01 2.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.23193676e+04]
[ 2.00000000e+01 2.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.16000116e+04]
[ 2.10000000e+01 2.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.05680012e+03]
[ 2.20000000e+01 2.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.89123867e+03]
[ 2.30000000e+01 2.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 4.98898168e+03]
[ 2.40000000e+01 2.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 7.44216130e+03]
[ 2.50000000e+01 2.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.23593332e+04]
[ 2.60000000e+01 2.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.14424233e+04]
[ 2.70000000e+01 2.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.91864355e+04]
[ 2.80000000e+01 3.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.07766798e+04]
[ 2.90000000e+01 3.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.61849685e+03]
[ 3.00000000e+01 3.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.09785208e+04]
[ 3.10000000e+01 3.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.99736773e+03]
[ 3.20000000e+01 3.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.06209122e+03]
[ 3.30000000e+01 3.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.48702707e+03]
[ 3.40000000e+01 3.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.04653099e+04]
[ 3.50000000e+01 3.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.25314801e+03]
[ 3.60000000e+01 3.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.67608539e+04]
[ 3.70000000e+01 4.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.07766798e+04]
[ 3.80000000e+01 4.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.82241178e+03]
[ 3.90000000e+01 4.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.05149043e+03]
[ 4.00000000e+01 4.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.55692239e+03]
[ 4.10000000e+01 4.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.19199226e+04]
[ 4.20000000e+01 4.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.43876335e+03]
[ 4.30000000e+01 4.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 4.90454231e+03]
[ 4.40000000e+01 4.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.03525083e+03]
[ 4.50000000e+01 4.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.67608539e+04]
[ 4.60000000e+01 5.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.07766798e+04]
[ 4.70000000e+01 5.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.07842319e+03]
[ 4.80000000e+01 5.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.48191278e+03]
[ 4.90000000e+01 5.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.06547361e+04]
[ 5.00000000e+01 5.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.27500595e+04]
[ 5.10000000e+01 5.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.62319628e+03]
[ 5.20000000e+01 5.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.50364667e+03]
[ 5.30000000e+01 5.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.48651846e+03]
[ 5.40000000e+01 5.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.67608539e+04]
[ 5.50000000e+01 6.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.16862400e+04]
[ 5.60000000e+01 6.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.88311307e+03]
[ 5.70000000e+01 6.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 7.89923519e+03]
[ 5.80000000e+01 6.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 8.16959736e+03]
[ 5.90000000e+01 6.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.49942081e+03]
[ 6.00000000e+01 6.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 6.24620368e+03]
[ 6.10000000e+01 6.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.27811830e+03]
[ 6.20000000e+01 6.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.13336356e+04]
[ 6.30000000e+01 6.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.91853045e+04]
[ 6.40000000e+01 7.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.67326624e+04]
[ 6.50000000e+01 7.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.79192625e+04]
[ 6.60000000e+01 7.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.35835049e+03]
[ 6.70000000e+01 7.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 4.66349011e+03]
[ 6.80000000e+01 7.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.88664273e+03]
[ 6.90000000e+01 7.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 4.15546726e+03]
[ 7.00000000e+01 7.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 9.26420582e+03]
[ 7.10000000e+01 7.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 1.80179725e+04]
[ 7.20000000e+01 7.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.69846102e+04]
[ 7.30000000e+01 8.00000000e+03 0.00000000e+00 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 0.00000000e+00]
[ 7.40000000e+01 8.00000000e+03 1.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.66207833e+04]
[ 7.50000000e+01 8.00000000e+03 2.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.32529854e+04]
[ 7.60000000e+01 8.00000000e+03 3.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.32529854e+04]
[ 7.70000000e+01 8.00000000e+03 4.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.32529854e+04]
[ 7.80000000e+01 8.00000000e+03 5.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.32529854e+04]
[ 7.90000000e+01 8.00000000e+03 6.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 2.32529854e+04]
[ 8.00000000e+01 8.00000000e+03 7.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 3.70098656e+04]
[ 8.10000000e+01 8.00000000e+03 8.00000000e+03 2.00000000e+01
0.00000000e+00 5.00000000e+02 2.00000000e+01 0.00000000e+00]]
cPickle 或 pickle 无法加载它。但是当我用控制台手动执行它时,相同的文件结构( [[ ]] 和所有格式完全相同,值也是 e+00 格式)然后它工作正常????????????我勒个去?无论如何,我已经通过改变数据格式解决了这个问题:/
最佳答案
我在 Windows XP 机器上遇到了同样的问题,代码在 Linux 下运行良好。这可能与文本和二进制文件的不同处理方式有关。写入数据时,尝试创建文件对象,明确说明您需要二进制模式,即
plik=open(filename,'wb')
代替
plik=open(filename,'w')
这对我有用。
关于python - cPickle 导入错误 : No module named multiarray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3004792/
在第 6 行而不是 multiArray[0] 上,当我编写 multiArray 时,程序仍然有效。不明白为什么。我之前在想 multiArray 是一个指向 multiArray[0] 的指针,它
我有一个看起来像这样的类。目的是有一个任意的起点和终点,但运算符 [] 映射到索引 0 作为下限。 template class Vec : public std::vector { public:
这是我的第一个问题,我会尽力澄清。 我需要为位置分配一个值。我有一个 7 行的二维数组(例如)。根据别人给我的值(value),我必须改变值(value)立场。 示例如果有人给我:3。我必须将这 3
假设我有一个这样的结构: struct someDataType { boost::multi_array data; }; 然后如何初始化数组?我已经尝试过了,但它似乎不起作用: someD
我在理解 boost::multi_:array 的复制构造函数实现时遇到了问题。 当我尝试以下操作时 std::vector a; std::vector b; a.resize(12); b.re
我有一个 n 维的 Boost.MultiArray,我初始化如下: const int n=3, size=4; //# of dimensions and size of one dimensio
我目前在 JTable 中的复选框设置值时遇到问题。我需要将每个复选框的 boolean 值存储在表的行中。我可以显示默认(假)复选框,但是一旦单击复选框,就会出现异常; java.lang.Arra
我正在用 c++ 制作一个 .dll 插件并在其中嵌入 python 2.7。 在我导入大型程序之前,简单的 .py 程序一切正常。最奇怪的是程序第一次运行没问题,第二次却抛出异常: Unhandle
这是来自 Boost docs并且编译没有问题。 #include "boost/multi_array.hpp" int main () { // Create a 3D array tha
哪个更快 - 使用元素选择运算符访问多数组的元素,还是使用迭代器遍历多数组? 在我的例子中,我每次都需要对多数组的所有元素进行完整传递。 最佳答案 访问 boost::multi_array 的每个元
这里是新程序员。 我正在尝试在 Windows 命令提示符下运行脚本,但在导入 numpy 包时遇到问题,我不知道出了什么问题/如何修复它。当我在 iPython 中运行脚本时,它运行良好。但是,当我
我使用以下命令来了解我正在使用的 numpy 版本 pip show numpy 输出如下所示 --- Name: numpy Version: 1.8.2 Location: /usr/lib/py
Boost多维数组和OpenCV多维数组的最大区别是什么? 我正在用 C++ 实现一个聚类算法,并且需要一个数据结构来存储数据点。它应该能够处理不同维度的数据,例如 1D 数据(灰度图像)、3D 数据
我使用模块 PyQt4、cv2(v.2.4.13)、numpy(v.1.11.1) 等编写应用程序。我使用 Python(win32 上的 2.7.11)、Windows7(x64)。 在 Windo
我正在开发一个需要使用 2d Boost.MultiArray 的程序。我设法初始化它并用数据填充它。但我不明白如何获取大小为 i 的子数组, j如果 multiarray 的大小为 m , n .在
除了预分配和遍历所有元素之外,是否有将 2D Boost MultiArray 转换为普通 2D 数组的最佳/最简单方法? #include "boost/multi_array.hpp" #incl
当我尝试使用 Jython 调用文件及其方法时,它显示了以下错误,而我的 Numpy、Python 和 NLTK 已正确安装,并且如果我直接从 Python shell 直接运行它也能正常工作 Fil
我正在尝试运行这个程序 import cv2 import time cv.NamedWindow("camera", 1) capture = cv.CaptureFromCAM(0) while
我正在尝试在 conda 环境中运行tensorflow。我首先使用 conda create --name py27 python=2.7 创建一个 python 2.7 环境,然后将其激活。在环境
我正在使用 cPickle 将我的数据库保存到文件中。代码如下所示: def Save_DataBase(): import cPickle from scipy import * from nump
我是一名优秀的程序员,十分优秀!