【python – 使用索引数组获取元素的更好方法?】教程文章相关的互联网学习教程文章

python – 将十进制范围转换为Numpy数组,每个位都是一个数组元素【代码】

我创建了一个小函数,它将整数,长度作为输入,并返回[0:2 ** length-1]范围内所有2 **长度整数的二进制表示的numpy数组.import numpy as npdef get_bitstrings(length):# We need to binary-fy 2^length numbers.iterations = 2**length# Pre-allocate memory.the_array = np.zeros((iterations, length))# Go through all decimals in the range [0:iterations-1]for num in range(iterations):# Get binary representation in str...

为什么要将python列表转换为numpy数组?

有一种方法可以将python中的数字列表转换为numpy数组. 但是我试过的简单函数,例如numpy.average(x),无论x是简单的python列表还是numpy数组都可以工作.在哪种类型的情况下,需要将python中的列表(或数组)转换为numpy中的数组?解决方法:到目前为止给出的答案非常好.通过其方法将大量NumPy功能绑定到数组对象的简单方便非常有用.这是尚未提及的内容. 在将列表传递给NumPy函数之前将列表转换为数组的一个非常好的理由是,在内部,大多数N...

python – 提高cython数组索引速度【代码】

我有一个非常简单的功能,我需要加快速度.基本上我有一个16位数字的大数组,其中有一些洞. (大约10%)我需要遍历数组,找到连续有2 0的区域,然后用前一个和下一个元素的平均值填充它们.这在C中只需要几毫秒,但Python正在变得更糟. 我已经从普通的python数组转换为numpy数组,然后使用cython编译我的代码,但我仍然远离我的目标.我希望有更多经验的人可以看看我在做什么并给我一些反馈. 我的常规python代码如下所示:self.rawData = nump...

python – 在numpy中生成缩小范围的1d数组【代码】

我想在numpy中生成一个1D数组,如下所示:In [181]: np.concatenate((np.arange(1, 4), np.arange(2, 4), np.arange(3, 4))) Out[181]: array([1, 2, 3, 2, 3, 3])在更大范围内,伪代码:concatenate(1:n, 2:n, 3:n, ..., n:n)是否有一种矢量化的方式在numpy和/或pandas中这样做?解决方法: >>> np.triu_indices(4, 1)[1] array([1, 2, 3, 2, 3, 3])(正如@SaulloCastro指出的那样,我没有像在原始的,接受的答案中那样使用各种索引到网...

python – 使用数组广播加速循环的Cython【代码】

摘要: 你们太棒了……我的真实代码正常运行.我接受了JoshAdel的建议,即: 1)将所有ndarray更改为键入的内存视图2)手动展开所有numpy数组计算3)为索引使用静态定义的unsigned int4)禁用boundscheck和wraparound 而且,非常感谢Veedrac的洞察力! 原帖: 我知道python做这些代码真的很慢:import numpy as npdef func0():x = 0.for i in range(1000):x += 1.return如果我将其更改为Cython,它可以更快:import numpy as np cimport nu...

Python np.array() 创建ndarray类型的数组【代码】

语法: np.array( [ [1,2,3],[4,5,6] ] )示例: import numpy as npa = np.array([[1,2,3],[4,5,6]])print(a) print(a.shape) print(type(a))

Python np.nonzero(ndarray) 返回数组中不为0的元素的索引【代码】

语法: 函数返回值为tuple元组类型,tuple内的元素数目与ndarray维度相同。 np.nonzero(ndarray)先强调一点,数组的索引是从0开始。 示例: # 1维数组 a = [0,2,3] b = np.nonzero(a) print(b) # (array([1, 2], dtype=int64),) # 说明:索引1和索引2的位置上元素的值非零。# 2维数组 a = np.array([[0,0,3],[0,0,0],[0,0,9]]) b = np.nonzero(a) print(b) # (array([0, 2], dtype=int64), array([2, 2], dtype=int64)) # 说明: #...

python – 有效地从现有数组创建新的numpy数组【代码】

我有现有的numpy数组(uint8),如下所示: (值为8位,我只对最后3位感兴趣)[[ 00000AAA, 00000BBB, 00000CCC ],[ 00000FFF, 00000EEE, 00000DDD ],[ 00000GGG, 00000HHH, 00000III ],[ 00000LLL, 00000KKK, 00000JJJ ] ]最后我想以这种形式获得数据:[01AAABBB, 01CCCDDD 01EEEFFF, 01GGGHHH, 01IIIJJJ, 01KKKLLL]此外,每隔一行反转. 目前我有一个冗长而缠绕的代码,它逐行地逐行遍历原始列表,移位和添加数据,但这还不够有效. 有没有什...

python – 对数组进行高效的双重迭代【代码】

我有下面的代码,其中points是3行cols列表的列数,coorRadius是我想要找到局部坐标最大值的半径,localCoordinateMaxima是一个数组,我存储这些最大值的i:for i,x in enumerate(points):check = 1for j,y in enumerate(points):if linalg.norm(x-y) <= coorRadius and x[2] < y[2]:check = 0if check == 1:localCoordinateMaxima.append(i)print localCoordinateMaxima不幸的是,当我有几千点时,这需要永远,我正在寻找一种加速它的方法...

python – 如何将numpy数组传递给openCV而不将文件首先保存为png或jpeg?【代码】

我试图截取屏幕截图,然后将其转换为numpy数组.然后我想使用截图运行cv2.matchTemplate.到目前为止,我使用它的唯一方法是保存图像:cv2.imwrite(‘temp.png’,imcv)然后在cv2.matchTemplate中使用该图像.这看起来非常糟糕.如何正确转换numpy数组以避免保存并直接将其传递给cv2.matchTemplate函数? 我在Ubuntu btw做这个项目.import pyscreenshot as ImageGrab import PIL import cv2 import numpy as np from matplotlib import py...

python – Numpy Bool数组上的布尔运算符之和(Bug?)【代码】

在使用numpy的数组时,我遇到了一个令人惊讶的情况.以下代码(True==True)+(True==True)正如人们所期望的那样,返回2.而import numpy Array=numpy.zeros((2,2),dtype=bool) (Array[0][0]==Array[0][0])+(Array[1][0]==Array[1][0])返回True.这导致:(Array[0][0]==Array[0][0])+(Array[1][0]==Array[1][0])-1返回0,而(Array[0][0]==Array[0][0])-1+(Array[1][0]==Array[1][0])返回1,使得总和不可交换! 这是有意的吗?如果是这样,为什...

python – 在numpy结构化数组列上执行math.sqrt【代码】

我有一个numpy结构化数组.最后一列需要根据行中的其他值包含简单数学方程的结果.问题是我在尝试计算等式的平方根部分时出现以下错误: TypeError:只能将length-1数组转换为Python标量 限制是我无法迭代数组以一次添加一个值. 这是一个显示错误的示例:import numpy as np import mathdata = np.random.randint(-100, 100, (1, 6, 4))data[:,3] = math.sqrt((0-data[:,0])**2 + (0-data[:,1])**2 + (0-data[:,2])**2)解决方法:您只...

python – 当0或更低为真时,将数组行的其余部分清零【代码】

我有一个MxN阵列.我希望在一行中的元素为零或更少之后将所有值清零. 例如212阵列111110011111 112321341411应该变成111110000000 112321341411谢谢!解决方法:它可能不是最有效的方法,但我已经将np.cumsum用于这些类型的事情.>>> import numpy as np>>> dat = np.array([[1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1],[1, 1, 2, 3, 2, 1, 3, 4, 1, 4, 1, 1], ])>>> dat[np.cumsum(dat <= 0, 1, dtype='bool')] = 0>>> print(dat) array([[...

python – Fortran喜欢在Cython中进行数组切片【代码】

我正在寻找一种简洁有效的方法来获取多维数组切片,对这些切片执行标量和矩阵运算,然后最终将结果数组保存为另一个数组中的切片. 您可以使用以下语法在fortran中做得很好:real*8, dimension(4,4,4,4) :: matrix_a real*8, dimension(4,4) :: matrix_b ... matrix_a(:, 2, :, 4) = matrix_a(:, 2, :, 4) + (2 * matrix_b(:, :))我试图在Cython中找到这样做的方法.这是我能想到的最好的:cdef double...

python – 如何批量拆分numpy数组?【代码】

这听起来很容易,我不知道该怎么做. 我有numpy 2d数组X = (1783,30)我希望将它们分批分成64个.我这样编写代码.batches = abs(len(X) / BATCH_SIZE ) + 1 // It gives 28我试图批量预测结果.所以我用零填充批处理,然后用预测结果覆盖它们.predicted = []for b in xrange(batches): data4D = np.zeros([BATCH_SIZE,1,96,96]) #create 4D array, first value is batch_size, last number of inputsdata4DL = np.zeros([BATCH_SIZE,1,1...

元素 - 相关标签