小编Max*_*aev的帖子

hdf5是否支持并发读取或写入不同的文件?

我试图理解hdf5并发的限制.

有两个版本的hdf5:并行HDF5默认值.并行版本目前在Ubuntu中提供,默认在Anaconda中(由"--enable-parallel"标志判断).

我知道并行写入同一个文件是不可能的.但是,我不完全理解默认情况下或使用并行构建可以扩展以下操作:

  • 从同一个文件读取的几个进程
  • 从不同文件中读取的几个进程
  • 写入不同文件的几个进程.

此外,有没有任何理由anaconda默认没有--enable-parallel标志?(https://github.com/conda/conda-recipes/blob/master/hdf5/build.sh)

hdf5 anaconda

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

numpy数组的并行就地排序

我经常需要对大型numpy数组(几十亿个元素)进行排序,这成了我代码的瓶颈.我正在寻找一种并行化的方法.

ndarray.sort()功能是否有任何并行实现?Numexpr模块为numpy数组上的大多数数学运算提供并行实现,但缺乏排序功能.

也许,有可能围绕C++并行排序实现一个简单的包装,并通过Cython使用它?

sorting numpy numexpr

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

使用Cython包装c ++模板以接受任何numpy数组

我正在尝试将用c ++编写的并行排序作为模板包装,以便将它与任何数字类型的numpy数组一起使用.我正在尝试使用Cython来做到这一点.

我的问题是我不知道如何将指向numpy数组(正确类型)的指针传递给c ++模板.我相信我应该使用融合dtypes,但我不太明白.

.pyx文件中的代码如下

# importing c++ template
cdef extern from "test.cpp":
    void inPlaceParallelSort[T](T* arrayPointer,int arrayLength)

def sortNumpyArray(np.ndarray a):
    # This obviously will not work, but I don't know how to make it work. 
    inPlaceParallelSort(a.data, len(a))
Run Code Online (Sandbox Code Playgroud)

在过去,我对所有可能的dtypes进行了类似的丑陋循环,但我相信应该有更好的方法来做到这一点.

c++ python arrays numpy cython

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

scipy.ndimage.interpolation.zoom使用类似最近邻居的算法进行缩减

在测试scipy的缩放功能时,我发现scailng-down数组的结果与最近邻算法类似,而不是平均.这极大地增加了噪声,并且对于许多应用而言通常是次优的.

是否存在不使用类似最近邻算法的替代方案,并在缩小尺寸时正确平均数组?虽然粗粒度适用于整数缩放因子,但我也需要非整数缩放因子.

测试用例:创建一个随机的100*M x 100*M阵列,对于M = 2..20将阵列缩小M系数的三种方式:

1)通过在MxM块中取平均值2)通过使用scipy的缩放比例因子1/M 3)获取a中的第一个点

得到的数组具有相同的平均值,相同的形状,但scipy的数组具有与最近邻居一样高的方差.为scipy.zoom采取不同的顺序并没有真正帮助.

import scipy.ndimage.interpolation
import numpy as np
import matplotlib.pyplot as plt

mean1, mean2, var1, var2, var3  = [],[],[],[],[]
values = range(1,20)  # down-scaling factors

for M in values:
    N = 100  # size of an array 
    a = np.random.random((N*M,N*M))  # large array    

    b = np.reshape(a, (N, M, N, M))  
    b = np.mean(np.mean(b, axis=3), axis=1)
    assert b.shape == (N,N)  #coarsegrained array

    c = scipy.ndimage.interpolation.zoom(a, 1./M, order=3, prefilter = True) 
    assert c.shape == …
Run Code Online (Sandbox Code Playgroud)

python image-processing scipy

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

Pycharm:终止所有正在运行的进程

PyDev具有终止所有正在运行的进程的功能.PyCharm有类似的东西吗?我只看到菜单中的"停止"按钮.

python pycharm

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

Python:通过非整数因子下采样2D numpy数组

我需要通过非整数因子(例如100x100阵列到45x45阵列)对2D numpy数组进行下采样,执行局部平均,就像Photoshop/gimp会为图像做的那样.我需要双精度.目前的选择不能很好.

  • scipy.ndimage.zoom不执行平均,并且基本上使用最近邻居采样(参见上一个问题scipy.ndimage.interpolation.zoom使用最接近邻居的算法进行缩小)

  • scipy.misc.imresize将数组转换为int8; 我需要更高的精度和浮点数

  • skimage.transform.rescale也使用最近邻居并转发你skimage.transform.downscale_local_mean进行局部平均,

  • skimage.transform.downscale_local_mean只能执行整数比例因子(如果因子是非整数,则用零填充图像).整数缩放因子是一个微不足道的numpy excersice.

我错过了其他选择吗?

python numpy image-processing

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

标签 统计

python ×4

numpy ×3

image-processing ×2

anaconda ×1

arrays ×1

c++ ×1

cython ×1

hdf5 ×1

numexpr ×1

pycharm ×1

scipy ×1

sorting ×1