小编bmu*_*bmu的帖子

Python一种用不同的dtype(单元8和单元16)掩盖两个数组的方法

我有2个数组:

mask:值为0和1,dtype = uint8

>>> mask
array([[0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [1, 1, 1, ..., 0, 0, 0],
       ..., 
       [1, 1, 1, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0],
       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)
Run Code Online (Sandbox Code Playgroud)

和prova_clip

>>> prova_clip
array([[289, 281, 271, ..., 257, 255, 255],
       [290, 284, 268, ..., 260, 260, 259],
       [294, 283, 264, ..., 265, 263, 257],
       ..., 
       [360, 359, 360, ..., 335, …
Run Code Online (Sandbox Code Playgroud)

python arrays optimization numpy

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

使用numpy vectorize矢量化函数

我想矢量化以下函数.参数是numpy数组.

def euclidean_distance(dl, dr):
    return math.sqrt(((dl - dr) ** 2).sum())
Run Code Online (Sandbox Code Playgroud)

我做了以下事情

v_u = numpy.vectorize(euclidean_distance)
Run Code Online (Sandbox Code Playgroud)

我正在做以下的电话

v_u(numpy.array([[10, 20, 30], [4, 5, 6]]), numpy.array([1, 2, 3]))
Run Code Online (Sandbox Code Playgroud)

我想的是,我回来它包含了欧氏距离的阵列[1, 2, 3][10, 20, 30], [4, 5, 6].

我想我错过了一些明显的东西.

编辑:
以下是我得到的错误

AttributeError: 'int' object has no attribute 'sum'
Run Code Online (Sandbox Code Playgroud)

很明显,dl并且dr作为单个元素传递但不作为数组传递......所以我想知道是否有人可以纠正它以便它在数组上运行.

非常感谢

python numpy

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

压缩大型python对象

我试图压缩一个巨大的python对象〜15G,并将其保存在磁盘上.由于需求限制,我需要尽可能地压缩这个文件.我目前正在使用zlib.compress(9).我主要担心的是,在压缩过程中所占用的内存超过了我在系统32g上可用的内存,并且预计对象的大小会增加.是否有更有效/更好的方法来实现这一目标.谢谢.

更新:还要注意我要保存的对象是一个稀疏的numpy矩阵,我在压缩前序列化数据,这也增加了内存消耗.由于我在序列化后不需要python对象,gc.collect()会帮忙吗?

python memory compression numpy

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

Ubuntu正在杀死我的计算

我正试图在我的ubuntu机器上进行繁重的科学计算.代码是用Python编写的,并标记为可执行文件.然而,在大约一个小时之后,计算终止,除了"终止"之外没有任何错误消息,就像系统刚刚运行命令"killall python"一样.

为什么ubuntu会终止我的计算?没有无限循环,解决方案很好地收敛(但是程序的一部分需要一些优化).

谢谢!

python ubuntu scientific-computing

0
推荐指数
1
解决办法
177
查看次数