【python – Numpy:条件求和】教程文章相关的互联网学习教程文章

python – 有numpy argsort返回一个2d索引数组吗?【代码】

如果我们有一个1d数组arr = np.random.randint(7, size=(5)) # [3 1 4 6 2] print np.argsort(arr) # [1 4 0 2 3] <= The indices in the sorted order 如果我们有一个2d数组arr = np.random.randint(7, size=(3, 3)) # [[5 2 4] # [3 3 3] # [6 1 2]] print np.argsort(arr) # [[1 2 0] # [0 1 2] # [1 2 0]] <= It sorts each row我需要的是2d索引,它将整个矩阵排序.像这样的东西:# [[2 1] => 1 # [0 1] => 2 # [2 2] => 2 #...

python – Numpy重塑1d到2d数组,有1列【代码】

在numpy中,结果数组的维度在运行时会有所不同.1d数组和具有1列的2d数组之间经常存在混淆.在一种情况下,我可以遍历列,在另一种情况下,我不能. 你如何优雅地解决这个问题?为了避免使用if语句检查维度来乱丢我的代码,我使用这个函数:def reshape_to_vect(ar):if len(ar.shape) == 1:return ar.reshape(ar.shape[0],1)return ar然而,这感觉不优雅且昂贵.有更好的解决方案吗?解决方法:最简单的方法:ar.reshape(-1, 1)

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:以n为基数的对数【代码】

从numpy documentation on logarithms开始,我发现函数采用基数e,2和10的对数:import numpy as np np.log(np.e**3) #3.0 np.log2(2**3) #3.0 np.log10(10**3) #3.0但是,如何在numpy中使用基数n(例如42)的对数?解决方法:使用math.log获取自定义基数的对数:import math number = 74088 # = 42**3 base = 42 exponent = math.log(number, base) # = 3使用numpy.log获取自定义基数的对数:import numpy as np array = np.array([...

python – numpy与多处理和mmap【代码】

我正在使用Python的多处理模块并行处理大型numpy数组.在主进程中使用numpy.load(mmap_mode =’r’)对数组进行内存映射.之后,multiprocessing.Pool()分叉进程(我推测). 一切似乎都很好,除了我得到的行:AttributeError("'NoneType' object has no attribute 'tell'",)in `<bound method memmap.__del__ ofmemmap([ 0.57735026, 0.57735026, 0.57735026, 0. , 0. , 0. , 0. , 0. , ...

python – NumPy Sum(带轴)如何工作?【代码】

我已经自己去了解NumPy如何为我自己的好奇心而工作. 似乎最简单的函数是最难转换为代码(我理解为代码).对于每种情况,很容易对每个轴进行硬编码,但我想找到一个动态算法,该算法可以在具有n维的任何轴上求和.官方网站上的文档没有帮助(它只显示结果而不是过程),并且很难浏览Python / C代码. 注意:我确实发现,当一个数组相加时,指定的轴被“移除”,即形状为(4,3,2)且轴为1的数组的总和产生一个形状为(4,2)解决方法:设定 考虑numpy数组...

python – 当numpy包含多个dtypes时,numpy如何确定数组数据类型?【代码】

我试图在numpy上做手,我在以下数据类型时进行调整使用内置方法dtype.以下我得到的一些结果.你能解释一下u11的含义吗?a1 = np.array([3,5,'p']) print(a1.dtype)o / p => U11解决方法:Numpy的PyArrayObject类型的数组对象具有NPY_PRIORITY属性,该属性表示在包含具有异构数据类型的项的情况下应该被视为数组的dtype的类型的优先级.您可以使用PyArray_GetPriority API访问此优先级,如果不存在该名称的属性,则返回obj或def的__array_p...

Python / NumPy中meshgrid的目的是什么?【代码】

有人可以向我解释Numpy中meshgrid函数的用途是什么?我知道它会为绘图创建某种坐标网格,但我无法真正看到它的直接好处. 我正在学习Sebastian Raschka的“Python机器学习”,他正在使用它来绘制决策边界.见输入11 here. 我也从官方文档中尝试过这段代码,但是,输出对我来说并没有多大意义.x = np.arange(-5, 5, 1) y = np.arange(-5, 5, 1) xx, yy = np.meshgrid(x, y, sparse=True) z = np.sin(xx**2 + yy**2) / (xx**2 + yy**2) h =...

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 – 从mod_wsgi django应用程序导入numpy的偶然ctypes错误【代码】

这是设置: >导入ctypes的mod_wsgi上的Django(1.2)应用程序> Python 2.6.5> Apache 2.2.3> SELinux禁用> RedHat EL 5 64位>某些文件系统挂载在nfs上 偶尔,当我重新启动apache时,我在尝试导入ctypes时遇到导入错误.每个传入的请求都会因500错误而失败.如果我重新启动apache通常一切都会重新开始工作. 这是错误的堆栈跟踪:Traceback (most recent call last):File "/home/appfirst/django/django/core/handlers/base.py", line 80, ...

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 – Py_initialize / Py_Finalize没有使用numpy两次【代码】

在下面的代码的第二次调用,我的应用程序段错误,所以我想我错过了一些东西:Py_Initialize(); pName = PyString_FromString("comp_macbeth"); pModule = PyImport_Import(pName); Py_DECREF(pName);if(pModule == NULL) {PyErr_Print();Py_Finalize();return; }pFunc = PyObject_GetAttrString(pModule, "compute"); /* pFunc is a new reference */if (!pFunc || !PyCallable_Check(pFunc) ) {PyErr_Print();Py_Finalize();return;...

使用Python和NumPy从矩阵中获取最小/最大n值和索引的有效方法【代码】

在给定NumPy矩阵(2D数组)的情况下,返回数组中最小/最大n值(及其索引)的有效方法是什么? 目前我有:def n_max(arr, n):res = [(0,(0,0))]*nfor y in xrange(len(arr)):for x in xrange(len(arr[y])):val = float(arr[y,x])el = (val,(y,x))i = bisect.bisect(res, el)if i > 0:res.insert(i, el)del res[0]return res这比pyopencv生成我要运行它的数组的图像模板匹配算法要长三倍,我认为这很愚蠢.解决方法:从另一个答案的时间开始,...