【读取Python之外的numpy数组】教程文章相关的互联网学习教程文章

python – 基于多个条件设置numpy数组的值【代码】

我试图将numpy数组中的值设置为零,如果它等于列表中的任何数字. 让我们考虑以下数组a = numpy.array([[1, 2, 3], [4, 8, 6], [7, 8, 9]])我想将列表[1,2,8]中的多个元素设置为0. 结果应该是[[0, 0, 3],[4, 0, 6],[7, 0, 9]]对于单个元素,它很简单a[a == 1] = 0以上仅适用于单个整数.它如何适用于列表?解决方法:使用np.in1d可以执行以下操作:>>> a = np.array([[1, 2, 3], [4, 8, 6], [7, 8, 9]]) >>> np.in1d(a, [1, 2, 8]) arra...

python – 通过求和聚合Numpy数组【代码】

我有一个Numpy阵形(4320,8640).我想有一个形状的阵列(2160,4320). 您会注意到新阵列的每个单元格都映射到旧数组中的22单元格集.我希望新数组中的单元格值是旧数组中此块中值的总和. 我可以这样做:import numpy#Generate an example array arr = numpy.random.randint(10,size=(4320,8640))#Perform the transformation arrtrans = numpy.array([ [ arr[y][x]+arr[y+1][x]+arr[y][x+1]+arr[y+1][x+1] for x in range(0,8640,2)] fo...

python – 将igraph邻接矩阵转换为numpy数组【代码】

通过写作import igraph g = igraph.Graph() g.add_vertices(6) g.add_edges([(0,1),(0,3),(0,4),(0,5),(1,2),(2,4),(2,5),(3,0),(3,2),(3,5),(4,5),(3,3)]) A=g.get_adjacency()我得到了图g的邻接矩阵,作为Matrix对象.我想通过使用例如numpy.linalg.eigvals()来计算其特征值.此方法将numpy数组对象作为参数.如何将Matrix对象转换为numpy数组对象?我试过用X=numpy.matrix(A)但是它产生了两种混合物,并且无法计算特征值.解决方法:根...

python – 在2D numpy数组中对角插入元素的最快方法是什么?【代码】

假设我们有一个2D numpy数组,如:matrix = [[1, 2, 3],[4, 5, 6],[7, 8, 9],[10, 11, 12]]我想在对角线插入一个值0,使其变为:matrix = [[0, 1, 2, 3],[4, 0, 5, 6],[7, 8, 0, 9],[10, 11, 12, 0]]最快的方法是什么?解决方法:创建一个新的更大的矩阵,剩下的空间为零.将原始矩阵复制到子矩阵,剪辑和重塑:matrix = numpy.array([[1, 2, 3],[4, 5, 6],[7, 8, 9],[10, 11, 12]])matrix_new = numpy.zeros((4,5)) matrix_new[:-1,1:] ...

python – 从一个Numpy数组的图像中裁剪一个边界框【代码】

所以我有一个形状(224,244,3)的图像作为ndarray.我有一个看起来像这样的图像的边界框注释{annotations: [{class: "rect",height: 172,width: 341,x: 282,y: 165},{class: "rect",height: 172,width: 353,x: 592,y: 90}],class: "image",filename: "img_05974.jpg" }如何裁剪numpy数组,以便它给我一个像上面的边界矩形的图像?解决方法:原则上,只需将正确的部分切割出阵列即可轻松完成裁剪.例如.图像[100:200,50:100,]在y(垂直)方...

使用索引数组(Python)将numpy数组划分为多个数组【代码】

我有一个数组:a = [1, 3, 5, 7, 29 ... 5030, 6000]此数组是从先前的进程创建的,并且数组的长度可能不同(它取决于用户输入). 我也有一个数组:b = [3, 15, 67, 78, 138](也可能完全不同) 我想使用数组b将数组切割成多个数组. 更具体地说,我希望结果数组为:array1 = a[:3] array2 = a[3:15] ... arrayn = a[138:]其中n = len(b). 我的第一个想法是创建一个带维度的二维数组切片(len(b),某些东西).但是我们事先并不知道这个,所以我...

python – 选择numpy数组的列【代码】

我对选择NumPy数组的列感到有些困惑,因为结果与Matlab甚至NumPy矩阵不同.请参阅以下案例. 在Matlab中,我们使用以下命令从矩阵中选择列向量.x = [0, 1; 2 3] out = x(:, 1)然后out成为[0; 2],这是一个列向量. 使用NumPy Matrix做同样的事情x = np.matrix([[0, 1], [2, 3]]) out = x[:, 0]然后输出是预期的np.matrix([[0],[2]]),它是一个列向量. 但是,在NumPy数组的情况下x = np.array([[0, 1], [2, 3]]) out = x[:, 0]输出是np.arra...

python – 将numpy数组堆叠到对角线上【代码】

给定N 2d numpy数组,是否有一种简洁的方法可以在对角线上“堆叠”或“绑定”它们,用0填充任何新的插槽?例如.给定:arr1 = np.array([[1, 2],[3, 4]])arr2 = np.array([[9, 8, 7],[6, 5, 4],[3, 2, 1]])我想创建:arr = np.array([[1, 2, 0, 0, 0],[3, 4, 0, 0, 0], [0, 0, 9, 8, 7],[0, 0, 6, 5, 4],[0, 0, 3, 2, 1]])解决方法:There’s a function for that.scipy.linalg.block_diag(arr1, arr2)它需要任意多个参数:scipy.linal...

python – 错误或功能:使用切片克隆一个numpy数组【代码】

继David Morrissey对’How to clone a list in python?‘的回答之后,我正在运行一些性能测试,并在使用w / numpy数组时遇到意外行为.我知道可以/应该克隆一个numpy数组w /clone = numpy.array(original)要么clone = numpy.copy(original)但错误地认为切片也会起作用.然而:In [11]: original = numpy.arange(4)In [12]: original Out[12]: array([0, 1, 2, 3])In [13]: clone = original[:]In [14]: clone Out[14]: array([0, 1, 2,...

python – 从2D numpy数组中获取x,y,值1D数组(线性索引)【代码】

假设我有一个2D数组,如下所示:array([3, 6, 71,-1, 3])我想在3个单独的数组中获得数组的x,y和值.换一种说法:x = [0, 1, 0, 1, 0, 1] y = [0, 0, 1, 1, 2, 2] values = [3, 1, 6, -1, 7, 3]我怎样才能做到这一点? 作为参考,MATLAB称之为linear indexing.解决方法:怎么样的:x, y = np.indices(array.shape) x = x.ravel(order='F') y = y.ravel(order='F') values = array.ravel(order='F')

python – 清空现有的NumPy数组【代码】

现在我有一个numpy数组X,其中包含某些列名,格式和长度.如何在不删除格式/名称等的情况下将此数组中的所有值设置为0(或为空)?解决方法:使用numpy.ndarray.fill:>>> import numpy as np >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> a.fill(0) >>> a array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0])

python – numpy数组到置换矩阵【代码】

np.array([1,2,3])我有阵容.我想把它变成一个numpy数组,每个1:1排列的元组.像这样:np.array([[(1,1),(1,2),(1,3)],[(2,1),(2,2),(2,3)],[(3,1),(3,2),(3,3)], ])有关如何有效地做到这一点的任何想法?我需要做几百万次这个操作.解决方法:如果您正在使用numpy,请不要使用元组.使用它的力量并添加另一个尺寸为2的尺寸.我的建议是:x = np.array([1,2,3]) np.vstack(([np.vstack((x, x, x))], [np.vstack((x, x, x)).T])).T要么:im...

python – 在numpy数组中非对齐插入未对齐的元素【代码】

我正在使用numpy 1.9来处理一组数组.假设我有类似的东西,我有两个2d数组A和B以及1-d数组C,看起来像这样:>>> A array([[ 1., 1., 1., 1., 1.],[ 1., 1., 1., 1., 1.],[ 1., 1., 1., 1., 1.],[ 1., 1., 1., 1., 1.],[ 1., 1., 1., 1., 1.]]) >>> B array([[-1., -1., -1., -1., -1.],[-1., -1., -1., -1., -1.],[-1., -1., -1., -1., -1.],[-1., -1., -1., -1., -1.],[-1., -1., -1., -1., -1.]]) >>> C array(...

Python / numpy:数组中的所有值都是x?【代码】

我有一个这样的有序数组:numpy.array([1,2,5,10,25,36,66,90,121,230,333,500]) 假设我希望所有值都高达60(如果60不在,我想停在第一个值大于60),所以我想要[1,2,5,10,25,36,66].如果我使用< = 60的numpy.where(),它会在66之前停止.我的解决方案 from numpy import * x = array([1, 2, 5, 10, 25, 36, 66, 90, 121, 230, 333, 500]) print x[:where(x >= 60)[0][0]+1] >>>[ 1 2 5 10 25 36 66]解决方法:你不需要任何特殊的numpy....

python – 如何有效地将矩阵变换应用于NumPy数组的每一行?【代码】

假设我有一个2d NumPy ndarray,就像这样:[[ 0, 1, 2, 3 ],[ 4, 5, 6, 7 ],[ 8, 9, 10, 11 ]]从概念上讲,我想要做的是:For each row:Transpose the rowMultiply the transposed row by a transformation matrixTranspose the resultStore the result in the original ndarray, overwriting the original row data我有一个极其缓慢,强力的方法,在功能上实现了这一点:import numpy as np transform_matrix = np.matrix( /* 4x4 mat...