【python – 根据值的唯一性删除numpy数组的行】教程文章相关的互联网学习教程文章

python – 从文本文件中将数据读入numpy数组【代码】

我有一个包含一些元数据的文件,然后是一些由2列标题组成的实际数据.在numpy中使用genfromtxt之前,我是否需要分离这两种类型的数据?或者我可以以某种方式拆分数据吗?将文件指针放在标题上方的行尾,然后从那里尝试genfromtxt怎么样?谢谢该文件的格式如下所示:&SRS <MetaDataAtStart> multiple=True Wavelength (Angstrom)=0.97587 mode=assessment background=True issid=py11n2g noisy=True </MetaDataAtStart> &END Two Theta(...

python – numpy数组的形状【代码】

现在和numpy一起工作了一段时间.就在我认为我已经找到数组的时候,它又引发了另一条曲线.例如,我构建了3D数组pltz,然后>>> gridset2 = range(0, pltx.shape[2], grdspc) >>> pltz[10,:,gridset2].shape (17, 160) >>> pltz[10][:,gridset2].shape (160, 17)为什么地球上的两种形状不同?解决方法:由于索引表达式同时包含:和列表,因此NumPy需要应用基本索引规则和高级索引规则,并且它们的交互方式有点奇怪.相关文档是here,如果您想了...

python – 将unicode元素读入​​numpy数组【代码】

考虑一个名为“new.txt”的文本文件,其中包含以下元素:μm ?r ?λ在Python 2.7中,我可以通过键入以下内容来读取文件:>>> import codecs >>> f = codecs.open('new.txt', encoding='utf-8') >>> lines = [line.strip() for line in f2.readlines()] >>> lines [u'\u03bcm', u'\u2202r', u'\u2206\u03bb'] >>> print lines[0] μm到现在为止还挺好.我可以通过以下方式轻松将此列表转换为numpy数组:>>> import numpy as np >>> arr...

如何将不同类型的数据从文件导入Python Numpy数组?【代码】

假设我有一个文件myfile.txt包含:1 2.0000 buckle_my_shoe 3 4.0000 margery_door如何将数据从文件导入numpy数组作为int,float和string? 我的目标是:array([[1,2.0000,"buckle_my_shoe"], [3,4.0000,"margery_door"]])我一直玩弄以下无济于事:a = numpy.loadtxt('myfile.txt',dtype=(numpy.int_,numpy.float_,numpy.string_))编辑:另一种方法可能是使用ndarray类型并转换后.b = numpy.loadtxt('myfile.txt',dtype=numpy...

python – 从NumPy数组到Mat(OpenCV)的C转换【代码】

我正在围绕ArUco增强现实库(基于OpenCV)编写一个薄的包装器.我想要构建的接口非常简单: > Python将图像传递给C代码;> C代码检测标记并将其位置和其他信息作为dicts元组返回给Python. 但是,我无法弄清楚如何在Python中表示图像以将其传递给C.对于GUI和相机管理,我将使用PyQt,所以最初它将是QImage,但我不能简单地将它传递给OpenCV(或者我可以?).起初,我尝试使用嵌套元组来表示每个像素的行,列和颜色,所以我最终得到了这个示例代码...

python – 将NumPy数组转换为set需要太长时间【代码】

我正在尝试执行以下操作from numpy import * x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]]) # large nparray for item in x:set(item)与以下相比需要很长时间:x = array([[3,2,3],[711,4,104],.........,[4,4,782,7845]]) # large nparray for item in x:item.tolist()为什么将NumPy数组转换为集合而不是列表需要更长的时间?我的意思是基本上都有复杂度O(n)?解决方法:TL; DR:set()函数使用Pythons迭代协议创建...

为什么在Python列表上的“for”比在Numpy数组上更快?【代码】

所以我没有讲一个很长的故事,我正在研究一些代码,我从二进制文件中读取一些数据,然后使用for循环遍历每一个点.所以我完成了代码,它的运行速度非常慢.我从大约128个数据通道循环了大约60,000个点,这需要一分钟或更长时间来处理.这比我预期的Python运行速度要慢.所以我通过使用Numpy使整个事情变得更有效率但是在试图弄清楚为什么原始进程运行得如此之慢以至于我们进行了一些类型检查并发现我在循环Numpy数组而不是Python列表.好吧没...

numpy数组数组的pythonic方法(带行索引)【代码】

我想在表中找到与特定索引相对应的值.例如,这是我的表:import numpy as np my_array = np.array([[0,1,0,1,0,1,0],[1,2,1,2,1,2,1],[4,5,4,3,3,4,5]])#--------------------------------------------------------------------- # my_array : [[0, 1, 0, 1, 0, 1, 0], # [1, 2, 1, 2, 1, 2, 1], # [4, 5, 4, 3, 3, 4, 5]])以下是一系列索引.此数组中的值是my_array的行. (列未编制索...

python – 沿动态指定的轴切割numpy数组【代码】

我想动态切片沿特定轴的numpy数组.鉴于这种:axis = 2 start = 5 end = 10我希望得到与此相同的结果:# m is some matrix m[:,:,5:10]使用这样的东西:slc = tuple(:,) * len(m.shape) slc[axis] = slice(start,end) m[slc]但是:值不能放在元组中,所以我无法弄清楚如何构建切片.解决方法:我认为一种方法是使用切片(无):>>> m = np.arange(2*3*5).reshape((2,3,5)) >>> axis, start, end = 2, 1, 3 >>> target = m[:, :, 1:3] >>>...

python – 使用最后的非零值填充1d numpy数组的零值【代码】

假设我们有一个填充了一些int值的1d numpy数组.让我们说其中一些是0. 有没有办法,使用numpy数组的幂,用找到的最后一个非零值填充所有0值? 例如:arr = np.array([1, 0, 0, 2, 0, 4, 6, 8, 0, 0, 0, 0, 2]) fill_zeros_with_last(arr) print arr[1 1 1 2 2 4 6 8 8 8 8 8 2]一种方法是使用此功能:def fill_zeros_with_last(arr):last_val = None # I don't really care about the initial valuefor i in range(arr.size):if arr[i...

python – 在NumPy数组中查找等于零的元素索引【代码】

NumPy具有有效的函数/方法nonzero()来识别ndarray对象中的非零元素的索引.获取值为零的元素的索引的最有效方法是什么?解决方法:numpy.where()是我的最爱.>>> x = numpy.array([1,0,2,0,3,0,4,5,6,7,8]) >>> numpy.where(x == 0)[0] array([1, 3, 5])

python – Numpy将数组乘以矩阵(外积)【代码】

我有2个numpy形状阵列(5,1)说:A = [1,2,3,4,5]B = [2,4,2,3,6] 如何使矩阵乘以每个第i个元素与每个第j个?喜欢:..a = [1,2,3,4,5] b 2 2, 4, 6, 8,10 4 4, 8,12,16,20 2 2, 4, 6, 8,10 3 3, 6, 9,12,15 6 6,12,18,24,30不使用forloops?我可以使用重塑,缩减或乘法的任何组合吗? 现在我沿着行和沿着colums创建每个数组的a * b平铺,然后乘以元素,但在我看来必须有一个更简单的方法.解决方法:使用numpy.outer()和n...

python – 一次获取NumPy数组中的几个元素的索引【代码】

有没有办法一次获取NumPy数组中的几个元素的索引? 例如.import numpy as np a = np.array([1, 2, 4]) b = np.array([1, 2, 3, 10, 4])我想找到a中每个元素的索引,即:[0,1,4]. 我发现我使用的解决方案有点冗长:import numpy as npa = np.array([1, 2, 4]) b = np.array([1, 2, 3, 10, 4])c = np.zeros_like(a) for i, aa in np.ndenumerate(a):c[i] = np.where(b==aa)[0]print('c: {0}'.format(c))输出:c: [0 1 4]解决方法:您可...

python – 删除零线2-D numpy数组【代码】

我在numpy中运行qr分解,它返回一个ndarrays列表,即Qand R:>>> [q,r] = np.linalg.qr(np.array([1,0,0,0,1,1,1,1,1]).reshape(3,3))R是一个二维数组,底部有零线(甚至在我的测试集中的所有例子都证明了这一点):>>> print r [[ 1.41421356 0.70710678 0.70710678][ 0. 1.22474487 1.22474487][ 0. 0. 0. ]].现在,我想将R分成两个矩阵R_~:[[ 1.41421356 0.70710678 0.70710678][ 0. ...

python – 为什么用括号和逗号对索引的numpy数组的行为有所不同?【代码】

我倾向于使用括号来索引numpy数组(矩阵),但我注意到当我想切片数组(矩阵)时我必须使用逗号表示法.为什么是这样?例如,>>> x = numpy.array([[1, 2], [3, 4], [5, 6]]) >>> x array([[1, 2],[3, 4],[5, 6]]) >>> x[1][1] 4 # expected behavior >>> x[1,1] 4 # expected behavior >>> x[:][1] array([3, 4]) # huh? >>> x[:,1] array([2, 4, 6]) # expected behavior解决方法:这个:x[:, 1]表...