草庐IT

python - 使用 numpy 数组计算累积最小值

我想计算“累积最小值”数组——基本上,数组的最小值到每个索引,例如:importnumpyasnpnums=np.array([5.,3.,4.,2.,1.,1.,2.,0.])cumulative_min=np.zeros(nums.size,dtype=float)fori,numinenumerate(nums):cumulative_min[i]=np.min(nums[0:i+1])这行得通(它返回正确的数组([5.,3.,3.,2.,1.,1.,1.,0.])),但我想尽可能避免for循环。我认为构建二维数组并使用np.amin()函数可能会更快,但我也需要一个循环。

python - 如何从字符串创建一个 numpy 数组?

我有一个文件读取器,它从文件中读取n个字节并返回表示该(二进制)数据的字符字符串。我想将n个字节读入一个numpy数组并对其运行FFT,但我在从字符串创建数组时遇到了问题。几行示例会很棒。编辑:我正在读取原始二进制数据,所以我得到的字符串看起来像'\x01\x05\x03\xff'...。我希望它成为[1,5,3,255]。 最佳答案 在Python2中,您可以直接使用numpy.fromstring执行此操作:importnumpyasnps='\x01\x05\x03\xff'a=np.fromstring(s,dtype='u

python - 使用条件检查从 numpy 数组中删除某些元素

我想从大约一百万个条目长的numpy数组中删除一些条目。这段代码可以完成,但需要很长时间:a=np.array([1,45,23,23,1234,3432,-1232,-34,233])forelementina:ifelement100:somedeletecommand.我可以用其他方式做到这一点吗? 最佳答案 我假设你的意思是a-100,最简洁的方式是使用逻辑索引。a=a[(a>=-100)&(a这并不完全是“删除”条目,而是制作一个数组副本,减去不需要的值并将其分配给先前分配给旧数组的变量。发生这种情况后,旧数组没有剩余引用

python - numpy linspace 和 numpy logspace 之间的输出差异

Numpylinspace在指定的时间间隔内返回均匀分布的数字。Numpylogspace返回在对数刻度上均匀分布的数字。我不明白为什么numpylogspace经常从我设置的边界返回“超出范围”的值。取0.02和2.0之间的数字:importnumpyasnpprintnp.linspace(0.02,2.0,num=20)printnp.logspace(0.02,2.0,num=20)第一个的输出是:[0.020.124210530.228421050.332631580.436842110.541052630.645263160.749473680.853684210.9578

python - 重新采样一个 numpy 数组

像这样的数组重采样很容易a=numpy.array([1,2,3,4,5,6,7,8,9,10])使用整数重采样因子。例如,因子2:b=a[::2]#[13579]但是对于非整数的重采样因子,它并不那么容易工作:c=a[::1.5]#[12345678910]=>notwhatisneeded...应该是(带线性插值):[12.545.578.510]或者(取数组中最近的邻居)[13467910]如何使用非整数重采样因子对numpy数组进行重采样?应用示例:音频信号重采样/重调 最佳答案 NumPy有numpy.interp进行线性

python - 在 python 列表中抓取唯一的元组,不管顺序如何

我有一个python列表:[(2,2),(2,3),(1,4),(2,2),etc...]我需要的是某种将其简化为其独特组件的功能......在上面的列表中:[(2,2),(2,3),(1,4)]numpyunique并不能完全做到这一点。我可以想办法做到这一点——将我的元组转换为数字,[22,23,14,etc.],找到唯一性,然后从那里开始工作……但我不知道不知道复杂性是否会失控。有没有一个函数可以完成我想用元组做的事情?这是演示问题的代码示例:importnumpyasnpx=[(2,2),(2,2),(2,3)]y=np.unique(x)returns:y:[23]下面是演示

python - 使用 python 计算矢量场的散度

是否有可用于计算矢量场散度的函数?(在matlab中)我希望它存在于numpy/scipy中,但我无法使用Google找到它。我需要计算div[A*grad(F)],其中F=np.array([[1,2,3,4],[5,6,7,8]])#(2Dnumpyndarray)A=np.array([[1,2,3,4],[1,2,3,4]])#(2Dnumpyndarray)所以grad(F)是二维ndarray的列表我知道我可以像this这样计算散度但不想重新发明轮子。(我也希望有更优化的东西)有人有建议吗? 最佳答案 给阅读这篇文章的每

python - Scipy 稀疏 Cumsum

假设我有一个scipy.sparse.csr_matrix代表下面的值[[00120304][10020340]]我想就地计算非零值的累积和,这会将数组更改为:[[001306010][100306100]]实际值不是1,2,3,...每行中非零值的数量不太可能相同。如何快速做到这一点?当前程序:importscipy.sparseimportnumpyasnp#sparsedataa=scipy.sparse.csr_matrix([[0,0,1,2,0,3,0,4],[1,0,0,2,0,3,4,0]],dtype=int)#methodindptr=a.indptrdata=a.

Python:球体的交集

我对编程非常陌生,但我决定从事一个有趣的项目,因为我最近学习了如何以参数形式表示球体。当三个球体相交时,有两个相交点是不同的,除非它们仅在一个奇点处重叠。球体的参数表示:我的代码是根据Python/matplotlib:plottinga3dcube,asphereandavector?的答案修改的,添加了指定x、y和z原点以及球体半径的功能。许多类似的问题是用C++、Java和C#编写的,我根本看不懂(我几乎不知道我在做什么所以放轻松)。我的代码:importnumpyasnpdefmake_sphere_x(x,radius):u,v=np.mgrid[0:2*np.pi:5000

python - 为什么numpy.core.numeric._typelessdata中有两个np.int64(为什么numpy.int64不是numpy.int64?)

这不像好奇心那么严重。在我的64位linux解释器中我可以执行In[10]:np.int64==np.int64Out[10]:TrueIn[11]:np.int64isnp.int64Out[11]:True太好了,正是我所期望的。但是我发现了numpy.core.numeric模块的这个奇怪的属性In[19]:fromnumpy.core.numericimport_typelessdataIn[20]:_typelessdataOut[20]:[numpy.int64,numpy.float64,numpy.complex128,numpy.int64]奇怪为什么numpy.in