是否有一个scipy函数或numpy函数或模块用于python,在给定特定窗口的情况下计算一维数组的运行平均值?
我在matplotlib中使用matshow(),默认情况下生成的数字顶部有xticklabels.有没有办法把xticklabels放在底部?
感谢任何帮助./ M
我想知道是否有一个python函数/模块在给定UTC时间和经度的情况下计算午夜(或当地太阳时间)之后的当地时间?它不需要考虑夏令时.
提前致谢.
我正在使用numpy.delete从while循环内的数组中删除元素.仅当数组不为空时,此while循环才有效.此代码工作正常,但当数组超过1e6元素时,速度会大大降低.这是一个例子:
while(array.shape[0] > 0):
ix = where((array >= x) & (array <= y))[0]
array = delete(array,ix,None)
Run Code Online (Sandbox Code Playgroud)
我试图使这个代码有效,但我找不到一个加速while循环的好方法.我认为,这里的瓶颈是必须包含某种副本的删除.我已经尝试使用蒙面数组以避免复制,但我不擅长python和掩码数组不是那么容易搜索.有没有一种好的,快速的方法来使用删除或替换它,以便7e6元素可以通过上面的循环处理而不需要24小时?
谢谢
我想明智地添加数千个4D数组元素并考虑到nans.使用1D数组的一个简单示例是:
X = array([4,7,89,nan,89,65, nan])
Y = array([0,5,4, 9, 8, 100,nan])
z = X+Y
print z = array([4,12,93,9,97,165,nan])
Run Code Online (Sandbox Code Playgroud)
我已经写了一个简单的for循环,但它需要永远 - 不是一个聪明的解决方案.另一个解决方案可能是创建一个更大的阵列并使用瓶颈nansum,但这会占用我的笔记本电脑太多的内存.我需要超过11000个案件的总和.
有没有人有一个聪明而快速的方法来做到这一点?
我必须承认,了解如何创建或操作matplotlib的色彩图并不是一件容易的事.因此,我正在寻求一些帮助来解释和设置从蓝色(负)到红色(正)的色彩图,并且白色以零为中心.我想在下面使用这个cmap contourf:
这有效但颜色相反
cs = plt.contourf(longrid, latgrid,
ar[window-1]-bkgrd, levels,
cmap = cm.get_cmap('BuRd', len(levels)-1))
Run Code Online (Sandbox Code Playgroud)这里的问题是BuRd_r将零点附近的白色带走
cs = plt.contourf(longrid, latgrid,
ar[window-1]-bkgrd, levels,
cmap = cm.get_cmap('BuRd_r', len(levels)-1))
Run Code Online (Sandbox Code Playgroud)我很感激任何帮助.
这是测试色彩映射的功能和数据:
def PlotAnomalyCF(ar,hgrid,latgrid,longrid,outfile,levels,units):
window = 1
tsize = 8
plt.close()
plt.figure(figsize=(11.7,4.3) )
plt.clf()
plt.cla()
bkgrd = bn.nanmean(ar[:],0)
for v in hgrid:OA
plt.subplot(1,len(hgrid),window)
plt.title(v,fontsize=tsize)
plt.subplots_adjust(left=0.07,bottom=0.75,
right=0.98, top=0.92,
wspace=0.12,hspace=0.98)
cs = plt.contourf(longrid,latgrid,
ar[window-1]-bkgrd,levels,
cmap=cm.get_cmap('BuRd_r',len(levels)-1))
cs.cmap.set_over('r')
plt.grid(True)
plt.axis('off')
window += 1
ax = plt.gca()
pos = ax.get_position()
l,b,w,h = pos.bounds
print l,b,w,h
cax = plt.axes([l-0.848,b-0.05,0.91,0.02]) …Run Code Online (Sandbox Code Playgroud) 我不熟悉导致以下警告的原因:
warning #5117: Bad # preprocessor line
#include "rtt_alloc_rad.interface"
Run Code Online (Sandbox Code Playgroud)
我已经看过一些明显的问题,比如#include左边是红色的.我想知道在哪里寻找可能的原因的一些提示.
我正在使用英特尔编译器:ifort版本15.0.1
该代码具有与外部库相关联的大型气候模型.很难知道要发布什么,但警告来自以下代码段:
MODULE rtt_interface
use rtt_types, only : rtt_options, rtt_coefs, profile_Type, &
transmission_Type, radiance_Type,rtt_coef_scatt_ir,rtt_optpar_ir, &
rtt_chanprof, rtt_emissivity, rtt_reflectance
use rtt_const, only : errorstatus_success, errorstatus_fatal, &
platform_name,inst_name
use rtt_unix_env, only : rtt_exit
use cosp_kinds, only : wp,wi,wl
IMPLICIT NONE
real(wp), parameter :: tmin_baran = 193.1571_wp
#include "rtt_alloc_rad.interface"
#include "rtt_alloc_transmission.interface"
#include "rtt_alloc_prof.interface"
#include "rtt_dealloc_coefs.interface"
#include "rtt_direct.interface"
#include "rtt_print_opts.interface"
! snip...
END MODULE rtt_interface
Run Code Online (Sandbox Code Playgroud)
我用标志编译: f90flags=-g -fp-model precise -traceback -r8 -O0
我很好奇python声明:
csum = (N * (N + 1)) >> 1
Run Code Online (Sandbox Code Playgroud)
在哪里N = 5和csum = 15.我不明白运营商>>以及本声明中发生了什么.这个行动背后的底层思想是什么?csum应该是向量1:5的累积和.
感谢你对此的看法.
我正在制作一个简单的轮廓图,我希望通过使其更厚并改变颜色来突出显示零线.
cs = ax1.contour(x,y,obscc)
ax1.clabel(cs,inline=1,fontsize=8,fmt='%3.1f')
Run Code Online (Sandbox Code Playgroud)
我该如何实现这一目标?谢谢 :-)
我有一个大小为:(50, 50) 的数组。该数组中有一个大小为 (20,10) 的切片。只有这个切片包含数据,其余部分全部设置为nan。
如何从我的大数组中切出这个切片?
python ×8
numpy ×6
matplotlib ×4
python-2.7 ×4
scipy ×2
arrays ×1
astronomy ×1
fortran ×1
fortran90 ×1
nan ×1
optimization ×1
plot ×1
python-3.x ×1
slice ×1