小编Jzl*_*325的帖子

Numpy - 用NaN替换数字

我想在numpy中用NaN替换一个数字,我正在寻找像numpy.nan_to_num这样的函数,反之亦然.

处理不同的数组时,该数字可能会发生变化,因为每个数组都可以唯一定义NoDataValue.我看到人们使用字典,但阵列很大,充满了正面和负面的浮动.我怀疑尝试将所有这些加载到任何东西来创建密钥是没有效率的.

我尝试使用以下和numpy要求我使用any()或all().我意识到我需要迭代元素,但希望内置函数可以实现这一点.

def replaceNoData(scanBlock, NDV):
    for n, i in enumerate(array):
        if i == NDV:
            scanBlock[n] = numpy.nan
Run Code Online (Sandbox Code Playgroud)

NDV是GDAL没有数据值,数组是一个numpy数组.

是一个掩盖阵列的方式可能去?

python arrays numpy nan gdal

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

什么是Python的coerce()用于?

Python的内置coerce函数有哪些常见用途?如果根据文档我不知道type数值,我可以看到应用它,但是还存在其他常见用法吗?我猜这也是在执行算术计算时调用的,例如.它是一个内置函数,所以可能它有一些潜在的常见用法?coerce() x = 1.0 +2

python type-conversion python-2.x built-in

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

Vagrant安装Anaconda Python?

Anaconda python是通过bash脚本安装的(在linux中).我正在尝试使用Vagrant配置来安装Anacaonda Python.

在bash脚本中(遵循文档bootstrap.sh示例)我有一个bootstrap.sh脚本:

  1. wget 安装脚本
  2. chmod +x 使其可执行
  3. ./<script>.sh 安装.

安装此方法失败,因为安装有一些提示,其中一个需要非默认答案.

是否可以通过bash脚本自动化安装?如果没有,是否有必要使用像Puppet这样的东西?我根本不认识Puppet,所以试图避免使用......也许是时候挖掘了?

最终目标是发布Vagrant文​​件而不是托管Vagrant框.

PS我最初的,微弱的尝试使用了linux yes命令,但必须存在更好的方法!

python puppet vagrant vagrantfile

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

Python多处理关键字参数

这是一个在函数调用中使用关键字参数的简单示例.没什么特别的.

def foo(arg1,arg2, **args):
    print arg1, arg2
    print (args)
    print args['x']

args ={'x':2, 'y':3}
foo(1,2,**args)
Run Code Online (Sandbox Code Playgroud)

正如预期的那样打印:

1 2
{'y': 3, 'x': 2}
2
Run Code Online (Sandbox Code Playgroud)

我试图将相同的样式关键字参数传递给多处理任务,但在args列表中使用**是语法错误.我知道我的函数stretch()将采用两个位置参数和n个关键字参数.

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step),**args)) for i in range (0, y, step)]
Run Code Online (Sandbox Code Playgroud)

是否可以将关键字参数传递给multiprocessing.Process?如果是这样,怎么样?如果没有,为什么?

python arguments multiprocessing keyword-argument

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

Fortran 77 Real到Int舍入方向?

移植一些Fortran 77代码.似乎REAL变量被分配给INTEGER变量.我没有运行此代码的方法,并想知道在以下情况下的行为是什么:

REAL*4 A
A = 123.25
B = INT(A)
Run Code Online (Sandbox Code Playgroud)

B = 123或B = 124?

在0.5分处怎么样?

REAL*4 C
C = 123.5
D = INT(C)
Run Code Online (Sandbox Code Playgroud)

D = 123或D = 123.5?

fortran rounding

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

标题中的重组文本(Sphinx)图像?

是否可以使用重组文本将图像放置在标题内?

就像是:

Introduction .. image:: path/to/img.png
---------------------------------------
Run Code Online (Sandbox Code Playgroud)

这呈现为文本,即不解析图像语法.我没有看到任何这样的例子让我相信这可能是不可能的,但也许有人有解决办法.

我打算输出到HTML(因此可以对派生的CSS进行修改,但我更愿意改变RST源.这是因为我还打算输出到pdf(latex).

restructuredtext

8
推荐指数
3
解决办法
2551
查看次数

加速迭代Numpy Arrays

我正在使用Numpy进行图像处理,特别是运行标准偏差拉伸.这读取X列数,找到Std.并执行百分比线性拉伸.然后它迭代到列的下一个"组"并执行相同的操作.输入图像是1GB,32位单波段光栅,处理(小时)需要相当长的时间.下面是代码.

我意识到我有3个嵌套for循环,这可能是瓶颈发生的地方.如果我在"框"中处理图像,也就是说加载一个[500,500]的数组并且迭代图像处理时间非常短.不幸的是,相机错误要求我迭代非常长的条带(52,000 x 4)(y,x)以避免条带化.

任何关于加快这一点的建议都将受到赞赏:

def box(dataset, outdataset, sampleSize, n):

    quiet = 0
    sample = sampleSize
    #iterate over all of the bands
    for j in xrange(1, dataset.RasterCount + 1): #1 based counter

        band = dataset.GetRasterBand(j)
        NDV = band.GetNoDataValue()

        print "Processing band: " + str(j)       

        #define the interval at which blocks are created
        intervalY = int(band.YSize/1)    
        intervalX = int(band.XSize/2000) #to be changed to sampleSize when working

        #iterate through the rows
        scanBlockCounter = 0

        for i in xrange(0,band.YSize,intervalY):

            #If the next i …
Run Code Online (Sandbox Code Playgroud)

python for-loop numpy gdal

7
推荐指数
2
解决办法
4312
查看次数

多维度的NumPy PolyFit和PolyVal?

假设n维的观察阵列被重新整形为2d阵列,每行是一个观察集.使用这种重塑方法,np.polyfit可以计算整个ndarray(矢量化)的二阶拟合系数:

fit = np.polynomial.polynomialpolyfit(X, Y, 2)
Run Code Online (Sandbox Code Playgroud)

其中Y是形状(304000,21),X是矢量.这导致(304000,3)系数数组合适.

使用迭代器可以调用np.polyval(fit, X)每一行.当存在矢量化方法时,这是低效的.可以在fit结果被应用到整个观察阵列不反复?如果是这样,怎么样?

这与这个SO问题一致.

python arrays numpy scipy

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

字典中的NumPy切片表示法

我想知道是否可以在python字典中存储numpy切片表示法.就像是:

lookup = {0:[:540],
          30:[540:1080],
          60:[1080:]}
Run Code Online (Sandbox Code Playgroud)

例如slice(0,10,2),可以使用本机python切片语法,但我无法存储更复杂的切片.例如,多维的东西[:,:2,:, :540].

我目前的工作是将值存储为元组,然后将这些值解压缩到必要的切片中.

使用Python 2.x.

python dictionary numpy slice python-2.7

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

获取numpy数组中非零元素的数量?

是否可以在非数组中获取非零元素的长度而不迭代数组或屏蔽数组.速度是计算长度的主要目标.

基本上,像len(array).where(array != 0).

如果它改变了答案,则每行将以零开头.数组用零填充在对角线上.

python numpy

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