【python – 为什么numpy.zeros会占用很少的空间】教程文章相关的互联网学习教程文章

python-Numpy规范化代码异常缓慢【代码】

我正在整理一些基本的python代码,这些代码采用了映射到矩阵列表(矩阵代表已分类图像)的标签字典,我只是想从所有内容中减去平均图像,然后将数据居中于0- 1个刻度.由于某种原因,此代码运行缓慢.当仅迭代500张4848图像时,大约需要10秒钟才能运行,这实际上并不能扩展到我正在使用的图像数量.查看cProfile结果后,看起来大部分时间都花在_center函数上. 我觉得我可能在这里没有充分利用numpy,并且想知道是否有比我更有经验的人有一些技巧...

Python-Masked Numpy数组比普通numpy数组慢得多【代码】

我有一个函数来计算numpy数组中所有行对之间的成对相关性.一切正常,但是后来我想起,我经常不得不处理丢失的数据.我使用蒙版数组尝试解决此问题,但它使计算速度大大降低.关于使用屏蔽函数的任何想法.我认为真正的瓶颈将在np.ma.dot函数中.但是我添加了一些配置文件,并很快使用iPython进行了模拟.我应该说,就这些阵列将要拥有的行数而言,5000在频谱的较低端.有些可能超过30万.带掩码数组的代码看起来比没有掩码的代码慢大约20倍,但是...

python-元素的numpy条件格式【代码】

我有一个3D numpy数组,想基于另一个元素的条件测试来更改特定元素. (应用程序是更改RGBA图像阵列的“ alpha”以与3D pyqtgraph图像中的透明度一起使用-理想情况下应该非常快).a= np.ones((2,4,5),dtype=np.int) #create a ones array a[0,0,0] = 3 #change a few values a[0,2,0] = 3 a[1,2,0] = 3 print(a) >>>[[[3 1 1 1 1][1 1 1 1 1][3 1 1 1 1]][[1 1 1 1 1][1 1 1 1 1][3 1 1 1 1]]]现在,我要有条件地测试最小维度(??)的第一...

python-使用线性插值调整numpy ndarray的大小【代码】

假设我想使用线性插值将形状数组(100,100,100)调整为形状数组(57,57,57). 基本上,我需要一个函数,该函数采用形状为S的n维数组,并通过内插将其变换为不带有维数但形状为S’的数组. 是否有一种简单快速的方法来用numpy和scipy做到这一点?我发现了诸如1d插值,2d插值,网格插值之类的东西,但是它们需要线性空间,而我并不是很了解.解决方法:您可以使用scipy.interpolate中的griddata方法from scipy.interpolate import griddata可以说您...

python-如何迭代一个numpy数组并选择相邻的单元格【代码】

我正在将USGS高程栅格数据集转换为Numpy数组,然后尝试随机选择数组中的位置.从这个位置,我想创建一种方法来识别周围的八个单元,以查看这些单元的高度是否在随机选择的单元的一米以内. 在这里它变得更加复杂…如果邻居在一米之内,则将调用相同的方法,然后重复该过程,直到一米以内不再有像元或所选像元的数量达到规定的限制. 如果不清楚,希望下面的2d数组示例更有意义.随机选择粗体/斜体单元格(35),在其上调用该方法(选择其所有八个邻...

python-如何对数组中的numpy数组进行排序?【代码】

这个问题与this one密切相关.可以说可以使用np.lexsort或在np.recarray上排序来解决它,但不能以琐碎和Python的方式解决. 我有一个numpy数组,例如这个数组:array([[[ 2, 7, 1],[ 35, 9, 1],[ 22, 12, 4]],[[ 12, 2, 3],[ 3, 7, 8],[ 12, 1, 10]]])我想把那个作为输出:array([[[ 2, 7, 1],[ 22, 12, 4],[ 35, 9, 1]],[[ 3, 7, 8],[ 12, 1, 10],[ 12, 2, 3]]])也就是说,根据每个内部数组的第一,第二和第三值...

python-浮点数的numpy数组表示形式中的多余空格【代码】

您知道为什么numpy整数数组的表示没有填充:>>> print array([[1, 2], [3, 4]]) [[1 2][3 4]]而浮点数的numpy数组在每个条目之前都有一个额外的空间?>>> print array([[1., 2], [3, 4]]) [[ 1. 2.][ 3. 4.]](至少在Python 2.7中) 我对它背后的原因/想法更感兴趣,而对引起它的具体实现细节更感兴趣.解决方法:我似乎怪罪于找出为什么作者如此实现. 看一下https://github.com/numpy/numpy/blame/master/numpy/core/arrayprint.py的...

python-将1D字节数组转换为2D numpy数组的最快方法【代码】

我有一个可以像这样处理的数组:ba = bytearray(fh.read())[32:] size = int(math.sqrt(len(ba)))我可以判断像素应该是黑色还是白色iswhite = (ba[i]&1)==1如何快速将我的1D字节数组转换为2D numpy数组,其行长大小为(ba [i]& 1)== 1而其他像素为白色像素?我这样创建数组:im_m = np.zeros((size,size,3),dtype="uint8)解决方法: import numpy as np# fh containts the file handle# go to position 32 where the image data start...

python-是否有更快的方法在numpy中进行这种索引编制?【代码】

我有如下的numpy数组a和b.a.shape = (100,10000) b.shape = (100,)需要一个形状为(100,)的c,for i in range(0,len(b)):c[i] = a[i,b[i]]我想要一种更快的方法来完成上述操作.我正在使用的场景不能使用For循环.它可以工作,但仍然很昂贵.有更有效的方法吗?解决方法:是的,您可以这样做:import numpy as npc = a[np.arange(len(b)), b]那差不多快了.在下面的代码中import numpy as npa = np.random.random((1000000, 10)) b = np.ran...

python-使用索引替换2D numpy数组的一部分【代码】

我正在尝试将2D numpy数组的一部分替换为i和j的函数,它们名为“ S”.给定S为:>>> S Out[1]: array([[ 1., 0., 0.],[ 0., 3., 0.],[ 0., 0., 9.]]对于i = 0和j = 1,我可以使用以下语法访问元素第i和j行以及第i和j列:>>> S[:, [i, j]][[i, j], :] Out[2]: array([[ 1., 0.],[ 0., 3.]])现在,当我尝试用另一个尺寸相同的数组(tmp_arr)替换数组S的相同元素时,python不会给出错误,但是它也没有做任何事情,这意味着S的元素保...

Python numpy广播3个维度(多个加权和)【代码】

我已经习惯了使用2维数组进行广播,但是我无法理解我想做的3维事情. 我有两个二维数组:>>> a = np.array([[0.01,.2,.3,.4],[.2,.03,.4,.5],[.9,.8,.7,.06]]) >>> b= np.array([[1,2,3],[3.,4,5]]) >>> a array([[ 0.01, 0.2 , 0.3 , 0.4 ],[ 0.2 , 0.03, 0.4 , 0.5 ],[ 0.9 , 0.8 , 0.7 , 0.06]]) >>> b array([[ 1., 2., 3.],[ 3., 4., 5.]])现在,我想要的是a中所有行的总和,其中每一行都由b中的列值加权.因此,我想要...

Python / Numpy-填补非连续点之间的空白?【代码】

我正在尝试找到一种向量化/快速/ numpy友好的方式,将A列中的以下值转换为B列:ID A B 1 0 0 2 0 0 3 1 0 4 1 1 5 0 1 6 0 1 7 -1 1 8 0 0 9 1 0 10 0 1 11 0 1 12 1 1 13 0 1 14 -1 1 15 0 0定义“ B”列的算法将使用值1填充1和-1组之间的所有间隙,从而跳过每对中的第一行.也就是说,对于ID4-ID7,B列用1填充(假定A列中的起始1 @ ID3).接下来,在ID10-ID14中用1填充(因为列A ...

python-在numpy / pandas中查找特定值之前的最后一个值【代码】

我有一个Pandas Series,我想找到一些值在其他特定值之前最后一次出现的索引/位置(或布尔掩码). 例如.给出:df = pd.DataFrame({'x':np.random.randint(10, 1000000)})我想找到0的所有位置,它们是9之前最后出现的位置.因此,如果我的数组是[9, 0, 3, 0, 1, 9, 4, 9, 0, 0, 9, 4, 0]我只对位置3和9的零感兴趣.请注意,在这种情况下,我不必担心位置12的最后0会发生什么.我宁愿不要将其包含在返回值集中,但并不重要. 我当前的方法是这样的...

使用None值从Python int列表初始化numpy掩码数组【代码】

如问题Convert python list with None values to numpy array with nan values的答案所示,如果我们强制执行dtype = float,则可以使用None值从列表中初始化被屏蔽的numpy数组.这些浮点值将转换为nan,我们可以简单地执行以下操作:ma.masked_invalid(np.array(a, dtype=float), copy=False)但是,这不适用于int,例如:ma.masked_invalid(np.array(a, dtype=int), copy=False)因为不会使用None值创建中间np.array(没有int nan). 什么是...

python-如何根据数组中值的相对大小将numpy数组按特定顺序排序(由单独的列表指定)【代码】

在一段代码中,我已经构造了一个numpy数组,并且我想根据列表中指定的特定顺序对该第一个数组进行排序.结果将是第三个数组(new_values). 第一个数组具有要排序的值.values = numpy.array([10.0, 30.1, 50, 40, 20])该列表提供了由new_values中的值的索引给出的顺序,该顺序应按降序排列,其中0对应于最大数字.order=[0, 3, 1, 4, 2].所以,new_values[0] > new_values[3] > new_values[1] > new_values[4] > new_values[2]我试图找到一个...