Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单独保存时,比较矢量(查找最近的矢量)的有效方法是什么?_Python_Processing Efficiency - Fatal编程技术网

Python 单独保存时,比较矢量(查找最近的矢量)的有效方法是什么?

Python 单独保存时,比较矢量(查找最近的矢量)的有效方法是什么?,python,processing-efficiency,Python,Processing Efficiency,假设我有一个11523维的浮动向量s,也就是说,它的形状是1x11523。(是的,没有那么紧凑。) 我还有108000个向量要比较。其中,我想得到最接近s的向量。(换句话说,我在11523D中有108000个质心,我希望有距离s最近的质心) 当然,108000x11523浮动矩阵太大,无法保存在一个文件中。因此,将保存每个36个中心线。(例如,c0000.pickle,c0001.pickle,c0002.pickle,…,c2999,pickle,每一个都是一个36x11523矩阵) 我正在浏

假设我有一个11523维的浮动向量
s
,也就是说,它的形状是1x11523。(是的,没有那么紧凑。)

我还有108000个向量要比较。其中,我想得到最接近
s
的向量。(换句话说,我在11523D中有108000个质心,我希望有距离
s
最近的质心)

当然,108000x11523浮动矩阵太大,无法保存在一个文件中。因此,将保存每个36个中心线。(例如,
c0000.pickle
c0001.pickle
c0002.pickle
,…,
c2999,pickle
,每一个都是一个36x11523矩阵)

我正在浏览每个文件:

best_so_far = 1e10           # or, infinity
for file in files:
    centeroids = load(file)  # eg, `c0001.pickle`
    dist = distance_measure(s, centeroids)
    if dist < best_so_far:
        # update best
best_迄今为止=1e10#或无穷大
对于文件中的文件:
中心线=加载(文件)#例如,`c0001.pickle`
距离=距离(s,中心线)
如果距离<迄今为止的最佳距离:
#最佳更新

现在这个过程相当缓慢。有更好的方法吗?我是否应该加载几个文件,直到达到某个内存使用量并计算度量值?

除了复杂的计算之外,您还需要添加文件I/O。我想这不会有什么帮助。@YW如果你需要性能,Python是错误的工具。可能是Matlab、Mathematica或任何其他不基于脚本语言的工具。如果您使用常用的距离度量,如余弦,则可以对操作进行矢量化。是否为此使用
numpy
?你能用一个
scipy.sparse
矩阵吗?你的距离是多少?@Chuck