【python – 保持numpy数组的值满足两个或多个条件】教程文章相关的互联网学习教程文章

python – 如何使numpy数组列表都具有相同的形状?【代码】

所以我在列表中有一堆2d Numpy数组,我想确保它们都具有相同的形状.我知道每个数组的第二个维度是相同的,但第一个维度是不同的. 假设阵列X的形状是(n,m),阵列Y的形状是(n 2,m).我想向数组X添加两行零,以便X和Y都是(n 2,m). 什么是Python-ic最常用的方法,确保所有数组都具有相同的形状?假设我知道列表中所有数组的第一个维度的最大值是什么 – 称之为N – 并且,正如我所提到的,我知道所有数组都具有m的第二维. 谢谢大家!解决方法:...

python – numpy数组切片中的意外结果(view vs copy)【代码】

我正在尝试减少代码中的复制量,并且在处理numpy数组切片和视图时遇到了令人惊讶的行为,如下所述: Scipy wiki page on copying numpy arrays 我偶然发现了以下行为,这对我来说意外: 情况1.:import numpy as np a = np.ones((3,3)) b = a[:,1:2] b += 5 print a print b.base is a正如所料,这输出:array([[ 1., 6., 1.],[ 1., 6., 1.],[ 1., 6., 1.]]) True案例2:在一行中执行切片和添加时,事情看起来不同:import numpy ...

python – 比较两个OpenCV图像/ 2D Numpy数组【代码】

我是使用OpenCV,Python和Numpy的新手,但现在已经是Java,C,C程序员了. 我正在实现一个sigma-delta背景检测器,它执行以下操作: 让i1成为第一张图片,让i2成为第二张图片for each pixel:if i1(x,y) > i2(x,y), then i2(x,y) = i2(x,y) + 1if i1(x,y) < i2(x,y), then i2(x,y) = i2(x,y) - 1我基本上试图遍历2D图像阵列并将像素值与其他图像进行比较,但我很难使用for循环来处理numpy数组.我尝试过使用嵌套for循环,但是我得到一个错误,说...

python – 从numpy数组中选择概率【代码】

Numpy是否有任何内置函数可以从1D numpy数组中随机选择值,并为数组末尾的值赋予更高的权重?有没有比定义偏斜分布和从中采样以获得数组索引更简单的方法?解决方法:你可以给np.choice一个权重,如图所示:a = np.random.random(100) # an array to draw from n = 10 # number of values to draw i = np.arange(a.size) # an array of the index value for weighting w = np.exp(i/10.) ...

python – 转换numpy数组【代码】

我有一个这种形式的numpy数组[[-0.77947021 0.83822138] [ 0.15563491 0.89537743] [-0.0599077 -0.71777995] [ 0.20759636 0.75893338]]我想创建这种形式的numpy数组[x1,x2,x1 * x2],其中[x1,x2]来自原始数组列表. 目前我正在使用python代码创建列表列表,然后将其转换为numpy数组.但我认为可能有更好的方法来做到这一点.解决方法:像这样:In [22]: import numpy as npIn [23]: x = np.array([[-0.77947021, 0.83822138],...:...

python – 迭代numpy数组的前d轴【代码】

我给了一个具有任意数量轴的数组,我想迭代,说出它们的第一个’d’.我该怎么做呢? 最初我以为我会创建一个包含我要循环使用的所有索引的数组i = np.indices(a.shape[:d]) indices = np.transpose(np.asarray([x.flatten() for x in i])) for idx in indices:a[idx]但显然我不能像这样索引数组,即使用另一个包含索引的数组.解决方法:你可以使用ndindex:d = 2 a = np.random.random((2,3,4)) for i in np.ndindex(a.shape[:d]):prin...

python – 从numPy数组列表中删除重复项【代码】

我有一个普通的Python列表,包含(多维)numPy数组,所有相同的形状和相同数量的值.列表中的某些数组与早期的数组重复. 我有问题,我想删除所有重复项,但数据类型为numPy数组的事实使这一点复杂化… ?我不能使用set(),因为numPy数组不可清除.?我无法在插入期间检查重复项,因为数组是由函数批量生成的,并使用.extend()添加到列表中.?如果不使用numPy自己的函数之一,numPy数组不能直接比较,所以我不能只使用“if x in list”…?列表的内容...

python – 在相同长度的1d numpy数组上评估1-d函数数组的高效算法【代码】

我有一个(大)长度为N的k个不同函数的数组,以及一个长度为N的abcissa数组.我想评估abcissa中的函数返回一个长度为N的纵坐标数组,而且关键的是,我需要非常快速地完成它. 我在调用np.where时尝试了以下循环,这太慢了: 创建一些假数据来说明问题:def trivial_functional(i): return lambda x : i*x k = 250 func_table = [trivial_functional(j) for j in range(k)] func_table = np.array(func_table) # possibly unnecessary我们有...

python – 如何一次将超大文件读入Numpy数组N行【代码】

我有一个巨大的文件(大约30GB),每行包括2D表面上的点的协调.我需要将文件加载到Numpy数组:points = np.empty((0,2)),并在其上应用scipy.spatial.ConvexHull.由于文件的大小非常大,我无法将其一次加载到内存中,我想将其作为N行批处理加载并在小部分上应用scipy.spatial.ConvexHull,然后加载下N行!这样做有效吗?我found out在python中你可以使用islice读取文件的N行,但问题是lines_gen是一个生成器对象,它给你文件的每一行,应该在...

python – 传递了稀疏矩阵,但需要密集数据.使用X.toarray()转换为密集的numpy数组【代码】

代码如下,我试图使用GBRT回归树的训练数据,相同的数据适用于其他分类器但是给出了GBRT的上述错误.请帮忙 :dataset = load_files('train') vectorizer = TfidfVectorizer(encoding='latin1') X_train = vectorizer.fit_transform((open(f).read() for f in dataset.filenames)) assert sp.issparse(X_train) print("n_samples: %d, n_features: %d" % X_train.shape) y_train = dataset.target def benchmark(clf_class, par...

在numpy数组中部分最大的pythonic方式【代码】

我想知道是否有一种快速的方法来计算numpy数组中的分段最大值.例:a = [1,2,3,4,5,6,7,8,9]如果我们将零件尺寸固定为3,我希望答案是:b = [3,6,9]其中3是a的第一部分的最大值,[1,2,3],6是第二部分[4,5,6]的最大值,依此类推.解决方法:尝试重塑,然后取最大值:import numpy as npa = np.array([1,2,3,4,5,6,7,8,9]) >>> a.reshape((len(a) / 3, 3)).max(axis=1) array([3, 6, 9])如果数组的长度不能被数字整除,那么你的问题需要更多的...

python – 在numpy数组中提取最小索引【代码】

参见英文答案 > Numpy minimum in (row, column) format 2个有很多类似的问题,但它们似乎都没有帮助我.我想在numpy数组中返回最小值的索引.比如说数组是:[[4,3,5,1][2,6,5,1][8,3,2,4]]我希望我的程序返回(0,3).我已经尝试过使用argmin但是接下来没有取得任何进展. 注意,我只想返回一组索引.在上面的例子中,I.E不是(0,3)和(1,3). 任何帮助将非常感激, 插口解决方法:使用unravel_index:arr = ...

使用Numpy数组的Opencv Python裁剪图像【代码】

我正在使用OpenCV 3.1.0-dev和python 2.7. 我试图裁剪出我缝制的图像的黑色外观.困难在于图像中还有其他像素为黑色,因此cv2.findcontours返回一个非常有趣的numpy数组.第一张图片是我的,第二张图片是目标. 我想知道是否有人知道如何将多边形裁剪到包含整个图像的最小正方形中.蓝线和点是cv2.findContours找到的轮廓.是否可以在numpy数组中找到左上角最多的点,在numpy数组中找到最右下角的p0int,我可以裁剪到?如果是这样,我该怎么做...

python – 为具有指定列的每一行的numpy数组赋值【代码】

我有一个矩阵foo,有n行和m列.例:>>> import numpy as np >>> foo = np.arange(6).reshape(3, 2) # n=3 and m=2 in our example >>> print(foo) array([[0, 1],[2, 3],[4, 5]])我有一个包含n个元素的数组栏.例:>>> bar = np.array([9, 8, 7])我有一个长度为n的列表ind,其中包含列索引.例:>>> ind = np.array([0, 0, 1], dtype='i')我想使用列索引ind将bar的值赋给矩阵foo.我想每行都这样做.假设执行此操作的函数称为assign_funct...

python – 在numpy数组中重复最后一列【代码】

问题 我尝试重复数组中的最后一列(numpy).我想知道是否有比调整数组大小更“优雅”的方法,复制值并重复最后一行x次. 我想要实现的目标Input Array: Output Array: [[1,2,3], [[1,2,3,3,3],[0,0,0], -> repeat(2-times) -> [0,0,0,0,0],[0,2,1]] [0,2,1,1,1]] 我是怎么解决这个问题的x = np.array([[1,2,3],[0,0,0],[0,2,1]]) # to repeat last...