我想知道是否有人可以提供有关以下编码问题的任何想法或建议,我对快速Python实现特别感兴趣(即避免使用Pandas)。
我有一组(虚拟示例)数据,例如:
| User | Day | Place | Foo | Bar |
1 10 5 True False
1 11 8 True False
1 11 9 True False
2 11 9 True False
2 12 1 False True
1 12 2 False True
Run Code Online (Sandbox Code Playgroud)
在给定的日期/地点包含2个用户(“ user1”和“ user2”)的数据,其中有2个布尔值(这里称为foo和bar)。
我只对在同一天和同一地点为两个用户记录数据的情况感兴趣。有了这些相关的数据行,我接下来要为日期/地点条目创建新列,以将用户和foo / bar描述为bool。
| Day | Place | User 1 Foo | User 1 Bar | User 2 Foo | User 2 Bar |
11 9 True False True False
Run Code Online (Sandbox Code Playgroud)
每个列数据存储在numpy数组中。我感谢这是使用枢纽分析表功能(例如Pandas解决方案是:
user = np.array([1, …Run Code Online (Sandbox Code Playgroud) 我正在开发使用 scipy 的 complex_ode 集成 ODE 的代码,其中被积函数包括傅立叶变换和作用于大量复数值的指数运算符。
为了优化性能,我已经对此进行了分析,发现主要瓶颈是(在使用 PyFFTW 等优化 FFT 之后):
val = np.exp(float_value * arr)
Run Code Online (Sandbox Code Playgroud)
我目前正在使用 numpy,我理解它称为 C 代码 - 因此应该很快。但是有什么办法可以进一步提高性能吗?
我已经研究过使用 Numba,但由于我的主循环也包含 FFT,我认为它无法编译(nopython=True 标志会导致错误),因此,我怀疑它没有任何收益。
这是我要优化的代码的测试示例:
arr = np.random.rand(2**14) + 1j *np.random.rand(2**14)
float_value = 0.5
%timeit np.exp(float_value * arr)
Run Code Online (Sandbox Code Playgroud)
任何建议欢迎感谢。
我正在尝试绘制一个简单的箭袋图(例如在 matplotlib 库中:http : //matplotlib.org/examples/pylab_examples/quiver_demo.html),尽管我不希望启用自动缩放功能。
我只想显示场方向,而不是幅度。
有没有办法将箭头大小设置为常量?我尝试使用比例和比例单位,但这似乎只是通过一些共同因素改变了所有箭头。
谢谢
python ×3
numpy ×2
arrays ×1
field ×1
matplotlib ×1
numba ×1
ode ×1
optimization ×1
pandas ×1
vector ×1