小编nro*_*rob的帖子

pydev交互式控制台总是消失和其他控制台问题

我刚开始在Eclipse中使用pydev,我对交互式控制台的工作方式有很多疑问.

我已经找到了如何启动交互式控制台并使用它来运行功能.我的问题是:

  1. 每次我更改代码并重新运行它时,我的交互式控制台都会消失.这很烦人,因为我必须重新打开一个控制台,我无法看到/重新运行我以前的历史记录.如果我固定它,它会停留,但我不能运行任何代码.有没有办法让交互式控制台始终保持打开状态,还能运行你的代码?我目前花了大量的时间关闭并打开游戏机!

  2. 如何从交互式控制台运行一个函数,但仍然让调试器在断点处停止.如果我从主函数运行代码,我可以使用调试器,但如果我从控制台运行代码,它只是跳过断点.

谢谢Niall

python eclipse console pydev

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

如何在 numpy 中逻辑组合整数索引?

有谁知道如何在 numpy 中组合整数索引?具体来说,我已经得到了几个结果np.where,我想提取它们之间的共同元素。

对于上下文,我试图用每个单元格边界值之间的元素数量填充一个大型 3d 数组,即我有各个事件的记录,包括它们的时间、纬度和经度。我想将其网格化为 3D 频率矩阵,其中维度为时间、纬度和经度。

我可以循环数组元素np.where(timeCondition & latCondition & lonCondition),使用 where 结果的长度进行 , 填充,但我认为这效率非常低,因为您必须重复很多 s where

更好的方法是只拥有每个维度中每个单元格的位置列表,然后循环遍历它们的逻辑组合?

python numpy

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

FFT的逆与原始函数不同

我不明白为什么ifft(fft(myFunction))和我的函数不一样.它似乎是相同的形状,但是2的因子(忽略常数y偏移).我可以看到的所有文档都说fft没有做一些规范化,但ifft应该照顾它.下面是一些示例代码 - 你可以看到我已经提到了2的因素给了我正确的答案.谢谢你的帮助 - 它让我疯狂.

import numpy as np
import scipy.fftpack as fftp
import matplotlib.pyplot as plt
import matplotlib.pyplot as plt

def fourier_series(x, y, wn, n=None):
    # get FFT
    myfft = fftp.fft(y, n)
    # kill higher freqs above wavenumber wn
    myfft[wn:] = 0
    # make new series
    y2 = fftp.ifft(myfft).real
    # find constant y offset
    myfft[1:]=0
    c = fftp.ifft(myfft)[0]
    # remove c, apply factor of 2 and re apply c
    y2 = (y2-c)*2 + c

    plt.figure(num=None)
    plt.plot(x, y, x, y2) …
Run Code Online (Sandbox Code Playgroud)

numpy fft scipy ifft

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

早期退出GPU上的循环值得做什么?

我们编写了GLSL着色器代码,使用GPU进行光线跟踪可视化.在光线行进循环中提前退出中断似乎是非常标准的,因此如果光线熄灭,则循环中断.

但根据我对GPU代码的了解,每次渲染都需要与最长的循环运行一样长.所以我的问题是:是否值得提前退出?

例如

for(int i = 0; i < MAX_STEPS; i++){
        //Get the voxel intensity value from the 3D texture.    
        dataRGBA = getRGBAfromDataTex(dataTexture, currentPosition, dataShape, textureShape);

        // get contribution from the light
        lightRayPathRGBA = getPathRGBA(currentPosition, light.position, steps, tex); // this is the light absorbed so we need to take 1.0- to get the light transmitted
        lightRayRGBA = (vec4(1.0) - lightRayPathRGBA) * vec4(light.color, light.intensity);

        apparentRGB = (1.0 - accumulatedAlpha) * dataRGBA.rgb * lightRayRGBA.rgb * dataRGBA.a * lightRayRGBA.a;
        //apparentRGB = (1.0 - …
Run Code Online (Sandbox Code Playgroud)

shader gpu opengl-es glsl webgl

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

以不同的分辨率获取输出 ifft

我正在尝试使用 scipy.fftp 在 python 中平滑和插入一些周期性数据。我已经设法获取数据的 fft,删除 wn 以上的高阶频率(通过执行 myfft[wn:-wn] = 0),然后使用 ifft(myfft) 重建数据的“平滑”版本。ifft 创建的数组与原始数据具有相同的点数。我如何使用该 fft 创建一个具有更多点的数组。

x = [i*2*np.pi/360 for i in range(0,360,30)]
data = np.sin(x)
#get fft
myfft = fftp.fft(data)
#kill feqs above wn
myfft[wn:-wn] = 0
#make new series
newdata = fftp.ifft(myfft)
Run Code Online (Sandbox Code Playgroud)

我还能够以与此处演示的相同分辨率手动重新创建系列使用 FFT 结果重新创建 时间序列数据而不使用 ifft

但是当我尝试提高 x 值数组的分辨率时,它也没有给我正确的答案。

提前致谢

尼尔

python fft scipy fftpack

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

标签 统计

python ×3

fft ×2

numpy ×2

scipy ×2

console ×1

eclipse ×1

fftpack ×1

glsl ×1

gpu ×1

ifft ×1

opengl-es ×1

pydev ×1

shader ×1

webgl ×1