草庐IT

sum_numbers

全部标签

Python/numpy : Most efficient way to sum n elements of an array, 这样每个输出元素都是前n个输入元素的总和?

我想编写一个函数,它将一个展平数组作为输入并返回一个等长数组,其中包含输入数组中前n个元素的总和,初始n-1元素输出数组的设置为NaN。例如,如果数组有十个elements=[2,4,3,7,6,1,9,4,6,5]和n=3那么结果数组应该是[NaN,NaN,9,14,16,14,16,14,19,15]。我想到的一种方法:defsum_n_values(flat_array,n):sums=np.full(flat_array.shape,np.NaN)foriinrange(n-1,flat_array.shape[0]):sums[i]=np.sum(flat_array[i-n

python - 为什么使用sum()函数会出现 'int' object is not callable错误?

这个问题在这里已经有了答案:TypeError:'int'objectisnotcallable(10个答案)关闭3年前。我想弄清楚为什么在范围内使用求和函数时会出错。代码如下:data1=range(0,1000,3)data2=range(0,1000,5)data3=list(set(data1+data2))#makesnewlistwithoutduplicatestotal=sum(data3)#calculatesumofdata3list'selementsprinttotal这里是错误:line8,intotal2=sum(data3)TypeError:'int'o

python - 为什么 numpy masked_array 上的 sum() 操作会将填充值更改为 1e20?

这是功能还是错误?有人可以向我解释numpymasked_array的这种行为吗?它似乎在应用求和操作后更改了fill_value,如果您打算使用填充结果,这会造成混淆。data=ones((5,5))m=zeros((5,5),dtype=bool)"""Maskoutrow3"""m[3,:]=Truearr=ma.masked_array(data,mask=m,fill_value=nan)printarrprint'Fillvalue:',arr.fill_valueprintarr.filled()farr=arr.sum(axis=1)printfarrprint'Fil

python - Pyspark 错误 : Java gateway process exited before sending its port number

我正在使用Pyspark在JupyterNotebook中运行一些命令,但它抛出错误。我尝试了此链接中提供的解决方案(Pyspark:Exception:Javagatewayprocessexitedbeforesendingthedriveritsportnumber)我尝试执行此处提供的解决方案(例如更改C:Java的路径、卸载JavaSDK10并重新安装Java8,但它仍然抛出同样的错误。我尝试卸载并重新安装pyspark,我也尝试从anaconda提示符运行,但我仍然遇到同样的错误。我使用的是Python3.7,pyspark版本是2.4.0。如果我使用这段代码,我会得到这个

python - 正则表达式数字数据处理: match a series of numbers greater than X

假设我有这样的数据:number_stream=[0,0,0,7,8,0,0,2,5,6,10,11,10,13,5,0,1,0,...]我想处理它以寻找符合特定模式的“颠簸”。假设我有自己的自定义正则表达式语言来处理数字,其中[[>=5]]代表任何数字>=5。我想捕捉这种情况:([[>=5]]{3,})[[换句话说,我想在我向前看并连续看到3个或更多值>=5时开始捕获,并在我向前看并看到2+个值>>>stream_processor.process(number_stream)[[5,6,10,11,10,13,5],...]请注意,第一个7,8,...被忽略,因为它不够长,并且捕获

python - 数字编程语言是否区分 "largest finite number"和 "infinity"?

问题动机:在我知道的标准数值语言中(例如Matlab、Pythonnumpy等),例如,如果您取一个适度大数的指数,则作为数值溢出的结果,输出是无穷大。如果将其乘以0,则会得到NaN。另外,这些步骤足够合理,但它们揭示了数学实现中的逻辑错误。已知溢出产生的第一个数字是有限的,我们显然希望用这个大的有限数字乘以0的结果是0。明确:>>>importnumpyasnp>>>np.exp(709)*00.0>>>np.exp(710)*0nan我想我们可以在这里引入“最大有限值”(LFV)的概念,它具有以下属性:LFV将是数值溢出的默认值,否则向上舍入到无穷大LFV任何显式数字(MATLAB

python - NumPy 广播 : Calculating sum of squared differences between two arrays

我有以下代码。在Python中它需要永远。必须有一种方法可以将这种计算转化为广播......defeuclidean_square(a,b):squares=np.zeros((a.shape[0],b.shape[0]))foriinrange(squares.shape[0]):forjinrange(squares.shape[1]):diff=a[i,:]-b[j,:]sqr=diff**2.0squares[i,j]=np.sum(sqr)returnsquares 最佳答案 您可以使用np.einsum在计算出broad

python - Python 中的 ZipFile 模块出现错误的魔数(Magic Number)错误

我在Windows7(64位)上使用Python2.7。当我尝试使用ZipFile模块解压缩zip文件时,出现以下错误:-Traceback(mostrecentcalllast):File"unzip.py",line8,inz.extract(name)File"C:\Python27\lib\zipfile.py",line950,inextractreturnself._extract_member(member,path,pwd)File"C:\Python27\lib\zipfile.py",line993,in_extract_membersource=self.open

python - 为什么 Python 内置的 sum 函数中有一个 start 参数?

在sum函数中,原型(prototype)是sum(iterable[,start]),它将可迭代对象中的所有内容加上起始值相加。我想知道为什么这里有一个起始值?是否有需要此值的特定用例?请不要再举例说明start是如何使用的。我想知道为什么它存在于这个函数中。如果sum函数的原型(prototype)只是sum(iterable),如果iterable为空则返回None,一切正常。那么,为什么我们需要从这里开始? 最佳答案 如果您对不是整数的事物求和,您可能需要提供一个起始值以避免错误。>>>fromdatetimeimportt

Python 正则表达式 : password must contain at least one uppercase letter and number

我正在使用Python和Flask对密码进行表单验证。密码需要至少包含一个大写字母和至少一个数字。我当前失败的尝试...re.compile(r'^[A-Z\d]$') 最佳答案 我们可以使用模式'\d.*[A-Z]|[A-Z].*\d'来搜索至少有一个大写字母和一个数字的条目。从逻辑上讲,大写字母和数字只能以两种方式出现在字符串中。要么是字母在前,数字在后,要么是数字在前,字母在后。管道|表示“或”,因此我们将分别查看每一侧。\d.*[A-Z]匹配后跟大写字母的数字,[A-Z].*\d匹配后跟数字的任何大写字母。words=['P