【python – 在numpy数组中更改的值】教程文章相关的互联网学习教程文章

python – 检查numpy数组的子维度中的元素是否在另一个numpy数组的子维度中的快速方法【代码】

假设我们有两个整数numpy数组A和B大小(N,M).我想检查N中的每一个,是B [i,:]中的A [i,:]. for循环实现是:for i in range(N):C[i] = np.isin(A[i,:],B[i,:])然而,对于大型阵列来说这是非常慢的.有没有更快的方法来实现这个? (例如矢量化?) 谢谢!解决方法:这是一种基于每行偏移的矢量化方法,如Vectorized searchsorted numpy's solution中更详细的讨论 – # https://stackoverflow.com/a/40588862/ @Divakar def searchsorted2d...

读取Python之外的numpy数组【代码】

在最近的question中,我询问了将大型numpy数组转换为分隔字符串的最快方法.我之所以提出这个问题,是因为我想把这个纯文本字符串转换成(例如通过HTTP)发送给用其他编程语言编写的客户端.一个分隔的数字字符串显然是任何客户端程序可以轻松使用的东西.但是,有人建议,因为字符串转换很慢,所以在Python端对数组进行base64编码并将其作为二进制发送会更快.这确实更快. 我现在的问题是,(1)如何确保我的编码numpy阵列能够很好地运行到不同操...

Python:拆分numpy数组【代码】

我有一个由numpy生成的数组,如下所示:[ 54.51399994 -12.10200024 -11.88099957] [ 56.23899841 -8.30799961-2.03500009]我如何将其转换为列表?所以它看起来如下:[‘54.51399994′,’-12.10200024′,’-11.88099957′] [‘56.23899841′,’-8.30799961′,’-2.03500009′]解决方法:您可以使用astype()创建一个新的字符串dtype数组:import numpy as np arr=np.array([( 54.51399994, -12.10200024, -11.88099957),( 56.23899...

python – 从numpy数组中提取对角块【代码】

我正在寻找一种简洁的方法来提取大小为22的对角块,它位于(2N)x(2N)numpy数组的主对角线上(也就是说,会有N个这样的块).这概括了numpy.diag,它沿着主对角线返回元素,人们可能会认为它是11块(当然numpy并不以这种方式表示它们). 为了更广泛地说明这一点,人们可能希望从(MN)x(MN)阵列中提取N个MxM块.这似乎是scipy.linalg.block_diag的补充,在How can I transform blocks into a blockdiagonal matrix (NumPy)中得到了很好的讨论,从blo...

python – 通过numpy数组优化迭代【代码】

我在Python中交换多维numpy数组的值.但代码太慢了.另一个帖子说:Typically, you avoid iterating through them directly. … there’s a good chance that it’s easy to vectorize.那么,您知道一种优化以下代码的方法吗?import PIL.Image import numpypil_image = PIL.Image.open('Image.jpg').convert('RGB') cv_image = numpy.array(pil_image) # Convert RGB to BGR for y in range(len(cv_image)):for x in range(len(cv_im...

python – 将基于numpy的数组保存在excel文件的不同行中【代码】

我有一个代码,在每个循环中生成一个numpy.array.我想将数组保存为excel文件中的一行(即,在第一个循环中创建的数组成为第一行,在第二个循环中生成的数组成为第二行,依此类推).该数组按以下方式创建: for循环范围(0,10):Array1 = ..... Array2 = ......Array3 = numpy.concatenate((Array1,Array2),axis=0)知道如何将Array3放在excel文件的10个不同行中吗? (如果数组是5维,则excel文件应包含10行和5列).解决方法:假设数据是您的阵...

python – 数组中的numpy数组调整大小【代码】

说我做了一个奇怪的小数组:>>> a = np.array([[[1,2,3],4],[[4,5,6],5]]) >>> a array([[[1, 2, 3], 4],[[4, 5, 6], 5]], dtype=object)然后将第一列作为切片:>>> b = a[:,0] >>> b array([[1, 2, 3], [4, 5, 6]], dtype=object) >>> b.shape (2,)假设我现在想要重塑b以使其形状为(2,3):>>> b.reshape((-1,3)) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: total size of new array mus...

数组中的Python / Numpy数组索引【代码】

我正在玩一个粒子模拟器,我想使用matplotlib与python和numpy尽可能高效地制作尽可能逼真的模拟器(这纯粹是一个有趣的练习python)我有一个问题试图计算距离的倒数. 我有一个包含粒子(x,y)位置的数组,如下所示:x = random.randint(0,3,10).reshape(5,2) >>> x array([[1, 1],[2, 1],[2, 2],[1, 2],[0, 1]])这是在[0,3]中具有位置(x,y)的5个粒子.现在,如果我想计算一个粒子(比如粒子与位置(0,1))和其余粒子之间的距离,我会做类似的事...

python – 4-D numpy数组字典:如何优化?【代码】

我有一个关于4-D numpy tensor字典的表现问题. 我有一个系数名称列表:cnames = ['CN', 'CM', 'CA', 'CY', 'CLN' ...];这不是固定大小(取决于上层代码).对于每个系数,我必须生成零的4-D张量[nalpha X nmach X nbeta X nalt](用于预分配目的),所以我这样做:#Number of coefficients numofc = len(cnames);final_data = {}; #I have to generate <numofc> 4D matrixes for i in range(numofc):final_data[cnames[i]]=n.zeros((nalph...

在Python中减去numpy数组时不需要的舍入【代码】

我遇到了一个问题,当从一个浮点数中减去一个数组时,python会自动舍入非常小的数字(小于1e-8).举个例子:import numpy as npfloat(1) - np.array([1e-10, 1e-5])关于如何强迫python不要圆的任何想法?这迫使我在某些情况下除以零,并成为一个问题.从numpy数组中减去时会出现同样的问题.解决方法:大多数情况下,它只是愚弄你的numpy数组的代表. 考虑上面的例子:import numpy as np x = float(1) - np.array([1e-10, 1e-5]) print x...

python – 强制Numpy数组中的元素在指定范围内【代码】

参见英文答案 > numpy convert number to byte 2个我有一个numpy数组,我想强制每个小于零的元素为零,并且高于255的每个元素将被强制降低到255. 例如. x =(-1,7,255,299)=> (0,7,255,255) 是否有一个不太复杂的单行程可以实现这一目标?解决方法:答案是numpy.clipnumpy.clip(x, 0, 255)关于标题中张贴的问题:不要.您可以使用vectorize将lambda函数应用于每个元素,但这很少是最佳选择.

python – 沿numpy数组的轴的k最小值的指数【代码】

有没有办法在不使用循环的情况下沿numpy数组的轴返回k-minimum值的索引?解决方法: import numpy as np x = np.array([[5, 2, 3],[1, 9, 2]]) # example data k = 2 # return the indices of the 2 smallest values np.argsort(x, axis=1)[:,0:k] # by rowarray([[1, 2],[0, 2]])

python – 对如何切割numpy数组感到困惑【代码】

m是一个有形状的ndarray(12,21,21),现在我只想把它的一个稀疏切片组成一个新的2D数组,sliceid = 0 indx = np.array([0, 2, 4, 6, 8, 10])所以sparse_slice直观地说是sparse_slice = m[sliceid, indx, indx]但显然上面的操作不起作用,目前我正在使用的是sparse_slice = m[sliceid,indx,:][:, indx]为什么第一个“直观”的方式不起作用?并且有一种比我目前的解决方案更紧凑的方式吗?我之前所有的ndarray切片试验都是基于直觉,也...

切片numpy数组时使用python的逻辑运算符【代码】

我想在二维numpy数组上执行切片:type1_c = type1_c[(type1_c[:,10]==2) or(type1_c[:,10]==3) or(type1_c[:,10]==4) or(type1_c[:,10]==5) or(type1_c[:,10]==6) ]语法看起来正确;但是我收到以下错误消息:‘具有多个元素的数组的真值是不明确的.使用a.any()或a.all()’ 我真的不明白出了什么问题.任何的想法?解决方法:或者在两个标量之间是明确的,但是什么是正确的向量推广?如果x == array([0,0])和y == array([0,1]),则x或y应...

python – 将numpy数组的大小写入二进制文件【代码】

我需要将2D numpy数组写入文件,包括其尺寸,以便我可以从C程序中读取它并创建相应的数组. 我已经编写了一些保存数组的简单代码,可以从C中读取,但如果我首先尝试编写数组的大小,它总会给我一个错误. 这是我的简单python代码:1 file = open("V.bin","wb") 2 file.write(V.shape) 3 file.write(V) 4 file.close()第二行给出错误,我也尝试过:n1, n2 = V.shape file.write(n1) file.write(n2)但它也不起作用. 我正在添加它显示的错误:...