草庐IT

numpy-ndarray

全部标签

Python numpy 保留已排序二维数组的索引列表

我有一个二维numpy数组,我想创建一个新的一维数组,如果它们按升序排序,它是第一个数组中数字的索引。对于以下数组:A=[[1,0,2],[0,3,0]]我希望它是这样的:B=[[1,1],[0,2],[0,0],[0,1],[1,0],[1,2]]知道如何使用预定义函数在python中完成它吗?谢谢 最佳答案 您可以使用argsort对展平数组的索引进行排序,然后是unravel_index将平面索引转换回坐标:>>>i=(-a).argsort(axis=None,kind='mergesort')>>>j=np.unravel

python - 在 NumPy 中使用 2 个维度进行索引时出错

为什么这样做:>>>(tf[:,[91,1063]])[[0,3,4],:]array([[0.04480133,0.01079433],[0.11145042,0.],[0.01177578,0.01418614]])但这不是:>>>tf[[0,3,4],[91,1063]]IndexError:shapemismatch:indexingarrayscouldnotbebroadcasttogetherwithshapes(3,)(2,)我做错了什么? 最佳答案 tf[:,[91,1063]])[[0,3,4],:]分两步操作,

python - 如何使用 SciPy/NumPy 从图像中查找和删除白色 Blob ?

我有一系列图像作为我的原始数据,我正试图为发布做准备。这些图像有一系列随机的白色Blob,我想用周围一些像素的平均值代替。我无法发布图片,但下面的代码应该会生成一个PNG文件,它与我要纠正的问题大致相同:importnumpyasnpfromscipy.miscimportimsaverandom_array=np.random.random_sample((512,512))random_array[random_array虽然这应该会生成一个图像,该图像具有与我的原始数据中存在的Blob类似的分布,但我的图像没有强度均匀的Blob,并且一些Blob的大小超过一个像素(尽管它们都不超

python - 切片 3d numpy 数组返回奇怪的形状

如果我用一组坐标对二维数组进行切片>>>test=np.reshape(np.arange(40),(5,8))>>>coords=np.array((1,3,4))>>>slice=test[:,coords]然后我的切片具有我期望的形状>>>slice.shape(5,3)但是如果我用3d数组重复这个>>>test=np.reshape(np.arange(80),(2,5,8))>>>slice=test[0,:,coords]那么现在的形状是>>>slice.shape(3,5)有什么不同的原因吗?分离索引返回我期望的形状>>>slice=test[0][:][coords]>

python - numpy savetxt 没有添加逗号分隔符

numpysavetxt没有添加逗号分隔符我有一个包含以下内容的数组:3.880631596916139792e-016.835074831218364011e-014.604322858429276133e-013.494236368132551673e-017.142120448019100287e-012.579415438181463793e-018.230159985476581674e-017.342531681855216652e-013.196536650498674748e-017.444435819161493439e-01然后我保存如下:np.savetxt('x

python - NumPy:计算累积中位数

我有大小为n的样本。我想为每个i计算:numpy中sample[:i]的1cummean=np.cumsum(样本)/np.arange(1,n+1)我可以在没有循环和理解的情况下对中位数做类似的事情吗? 最佳答案 知道Python有一个heapq模块可以让你保持一个可迭代的运行“最小值”,我搜索了heapq和median,并找到了蒸介质的各种元素。这个:http://www.ardendertat.com/2011/11/03/programming-interview-questions-13-median-of-integer

python - numpy 数组 : IndexError: too many indices for array

这个有效:>>>a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])>>>a[:,2]array([3,7,11])这不是>>>a=np.array([[1,2,3,4],[5,6,7,8],[9,10,11]])>>>a[:,2]Traceback(mostrecentcalllast):File"",line1,inIndexError:toomanyindicesforarray为什么会这样? 最佳答案 Numpyndarrays意味着所有元素都具有相同的长度。在这种情况下,您的第二个数

python - numpy.unique 基于计数的排序

如果return_counts为True,则numpy.unique函数允许返回唯一元素的计数。现在返回的元组由两个数组组成,一个包含唯一元素,第二个包含计数数组,两者都按唯一元素排序。现在有没有办法根据计数数组而不是唯一元素对两者进行排序?我的意思是我知道如何以困难的方式做到这一点,但是对于这种情况是否有一些简洁的单行或lambda功能?当前结果:my_chr_list=["a","a","a","b","c","b","d","d"]unique_els,counts=np.unique(my_chr_list,return_counts=True)print(unique_els

python - pip升级后无法安装numpy

由于某些原因,在pip升级到19.0版本后,我无法安装最新版本的numpy(它仍然可以完美地与pip版本18.1配合使用)。当我运行时pipinstallnumpy--no-cache我得到这个异常Exception:Traceback(mostrecentcalllast):File"/home/me/.venvs/_/lib/python3.6/site-packages/pip/_internal/cli/base_command.py",line176,inmainstatus=self.run(options,args)File"/home/me/.venvs/_/lib/p

python - 将行添加到 numpy recarray

有没有一种简单的方法可以在不创建新的recarray的情况下将记录/行添加到numpyrecarray?假设我有一个占用1Gb内存的recarray,我希望能够向其中添加一行而不让python暂时占用2Gb内存。 最佳答案 您可以调用yourrecarray.resize具有多一行的形状,然后分配给该新行。当然。numpy可能如果它没有足够的空间来就地增长数组,它仍然必须分配全新的内存,但至少你有机会!-)由于需要一个例子,所以来了,修改了规范examplelist...:>>>importnumpy>>>mydescriptor=