【python – Numpy表 – 高级多标准选择】教程文章相关的互联网学习教程文章

python-将numpy数组与其他数组切片【代码】

我正在尝试提取由x中包含的一组索引指定的numpy数组y的子集,同时仍然保留一些y的索引.举一个具体的例子.令y的形状为(10,10,10,3),而x的形状为(7,7,3). x的最后一个维度对应于y的前三个维度的索引.也就是说,我想要一个高效的切片操作,其结果与此相同:for i in x.shape[0]:for j in x.shape[1]:z[i,j,:] = y[x[i,j,0],x[i,j,1],x[i,j,2],:]理想情况下,无论x的维数为多少,答案都将起作用. 通常,y为具有形状(…,N)的N一维,而x为具有形...

python-numpy数组的小数部分【代码】

我只需要获取数组的小数部分.使用numpy或简单地使用python modf函数很方便. 如果我们有大量正分数数据数组,例如,可以和(1000000,3)一样大,那么更方便的做法是:numpy.modf(array)[0] array-numpy.trunc(array)我认为2在内存使用方面更快,更便宜…但不确定. python和numpy专家怎么看?解决方法:我不是专家,所以我必须使用timeit模块检查速度.我使用IPython(这使计时变得非常容易),但即使没有它,timeit模块也可能是解决之道.In [21...

Python Numpy蒙版数组初始化【代码】

我在工作中一直使用掩码数组,但是我遇到的一个问题是,掩码数组的初始化有点笨拙.具体来说,ma.zeros()和ma.empty()返回的蒙版数组的掩码与数组维数不匹配.我想要这样做的原因是,如果不分配给数组的特定元素,则默认情况下会将其屏蔽.In [4]: A=ma.zeros((3,)) ... masked_array(data = [ 0. 0. 0.],mask = False,fill_value = 1e+20)我可以随后分配掩码:In [6]: A.mask=ones((3,)) ... masked_array(data = [-- -- --],mask = [ T...

python-加速Numpy数组/ OpenCV cv2图像上的迭代【代码】

我有3个形状为>的numpy数组(500,500).我正在尝试同时迭代它们.我尝试了两种不同的方法,但是它们都很慢. 在此,Ix_Ix_blur,Ix_Iy_blur和Iy_Iy_blur大小相同.我正在尝试查找功能并将其绘制在OpenCV图像上. 方法1:for i in xrange (Ix_Ix_blur.shape[1]):for j in xrange(Ix_Ix_blur.shape[0]):A = np.array([ [Ix_Ix_blur[j][i], Ix_Iy_blur[j][i]], [Ix_Iy_blur[j][i], Iy_Iy_blur[j][i]] ])detA = (A[0][0]*A[1][1])-(A[0][1]*A[1]...

python-如何将numpy记录的数组堆叠起来?【代码】

[此帖子的早期版本标题不正确:“如何在一列numpy记录中添加一列?”早先的标题中提出的问题已经部分为answered,但此答案并不完全是该帖子的早先版本所要求的内容.我重新命名了标题,并对其进行了实质性的编辑,以使区别更加清晰.我还解释了为什么我前面提到的答案不符合我的期望.] 假设我有两个numpy数组x和y,每个数组由r个“记录”(又名“结构化”)数组组成.设x的形状为(r,cx),y的形状为(r,cy).我们还假设x.dtype.names和y.dtype.n...

python-numpy / pylab最小值,最大值【代码】

我有两个数字数组t,x:import numpy t = numpy.arange(0,10,0.001) x = numpy.sin(t)我想产生相同大小的其他数组,它们是逐个元素的最大值或最小值:y1 = ?max(x,2) y2 = ?min(x,t)其中?max和?min代表未知函数. numpy.max()和numpy.min()似乎找到整个数组的最大值和最小值,这不是我想要的. 我该如何实现?解决方法:您正在寻找numpy.minimum()和numpy.maximum()(不要与numpy.min()和numpy.max()混淆).

在Numpy / Python中快速稀有矩阵【代码】

我需要(迅速)稀疏矩阵. Rarefaction-将丰度矩阵转换为均匀的采样深度. 在此示例中,每行是一个样本,采样深度是该行的总和.我想通过min(rowsums(matrix))个样本随机采样(替换)矩阵. 假设我有一个矩阵:>>> m = [ [0, 9, 0], ... [0, 3, 3], ... [0, 4, 4] ]稀疏函数逐行进行随机采样,替换次数为min(rowsums(matrix))次(本例中为6).>>> rf = rarefaction(m) >>> rf[ [0, 6, 0], # sum = 6[0, 3, 3], # sum = 6[0, 3, 3]...

python-numpy.unique在什么方面生成唯一列表?【代码】

如果您向numpy.unique输入带有通用对象的数组,则结果将基于什么而唯一. 我努力了:import numpy as npclass A(object): #probably exists a nice mixin for this :Pdef __init__(self, a):self.a = adef __lt__(self, other):return self.a < other.adef __le__(self, other):return self.a <= other.adef __eq__(self, other):return self.a == other.adef __ge__(self, other):return self.a >= other.adef __gt__(self, other):...

python-在Numpy中合并两个相同形状数组的最干净方法【代码】

我们有一些形状相同的数组,并希望将它们合并. “合并”是指输出一个新数组,其中每个位置的每个数组中每个i,j的总和.import numpy as np first = np.array([[1,1],[1,1]]) second = np.array([[2,2],[2,2]]) third = np.array([[3,3],[3,3]])结果应为:[[6,6], [6,6]]这是我的代码…但是有更干净的方法吗?我似乎找不到内置方法:def merge_arrays(arrays):output = arrays[0]for a in arrays[1:]:for i,row in enumerate(a):for j,...

python-格式化numpy数组并保存到* .txt【代码】

我想格式化一个numpy数组并将其保存在* .txt文件中 numpy数组如下所示:a = [ 0.1 0.2 0.3 0.4 ... ] , [ 1.1 1.2 1.3 1.4 ... ] , ...输出* .txt应该如下所示:0 1:0.1 2:0.2 3:0.3 4:0.4 ... 0 1:1.1 2:1.2 3:1.3 1:1.4 ... ...不知道该怎么做. 谢谢. 好吧,贾巴,谢谢.我把你的答案固定了一点import numpy as npa = np.array([[1,3,5,6], [4,2,4,6], [6,3,2,6]])ret = ""for i in range(a.sh...

如何在python numpy.bytes_类型上使用split()? (从文件中读取字典)【代码】

我想从一个(很大的,用空格隔开的,两列的)文本文件中读取数据到Python字典中.我尝试使用for循环来执行此操作,但这太慢了.使用numpy loadtxt将其读取到结构数组中,然后将其转换为字典的速度更快:data = np.loadtxt('filename.txt', dtype=[('field1', 'a20'), ('field2', int)], ndmin=1) result = dict(data)但这肯定不是最好的方法吗?有什么建议吗? 我需要其他东西的主要原因是,以下内容不起作用:data[0]['field1'].split(sep=...

python-不是一维的一维numpy / scipy插值【代码】

numpy数组数据具有….数据.块状数组z具有距离. data和z具有相同的形状,z的每个点是测量数据的相应点的距离.使事情复杂化的是,用户将提供3、4或5维的data / z数组. 我想将数据插值到一维numpy数组dists中的一组距离.由于数据结构的原因,内插轴始终是从末端开始的两个轴,即,如果数组具有3个维,则内插轴为0;如果数组有4维,插值轴为1,依此类推.由于AFAICT,所有的numpy / scipy插值例程都希望在1D数组中给出原始距离,因此在dists上插值...

python-如何使用numpy / scipy生成矩形脉冲【代码】

我想用python生成矩形脉冲.我相信可以用numpy或scipy来完成.但是我无法从API获得它.生成矩形脉冲后,将使用matplotlib对其进行绘制.解决方法:要创建一维数组,将所有零都保留,但要扩展1.0值-一个矩形脉冲:import numpy as np a = np.zeros( (1000,) ) # whatever size. initializes to zeros a[150:180] = 1.0 # index range sets location, width of impulse要查看情节:import matplotlib.pyplot as mp mp.plot(a) mp....

python-字符串和数组(矩阵)按行排列:numpy.savetxt【代码】

我有两个字符串数组,它们必须彼此按行排列,然后必须将它们写入文本文件中import numpy as np title1 = np.array(['text1']) title2 = np.array(['text2']) np.savetxt('result.csv',(title1, title2),fmt="%s")结果应为以下文件开头:text1 text2但更像是这样:text1text2第二个问题是在这两行文本下面,我需要在下一行中放一个矩阵(我的要大得多).矩阵的条目应以分号“;”隔开. -行末不应有一个(!)a=np.array([[1.2,2.3,3.4],[4...

如何在Python 3中比较Numpy字符串【代码】

下面演示了该问题:import io import numpy as npa = np.loadtxt(io.StringIO("val1 val2\nval3 val4"), dtype=np.dtype([("col1", "S10"), ("col2", "S10")])) print("looks weired: %s"%(a["col1"][0])) assert(a["col1"][0] == "val1")我不明白如何比较字符串.在我的系统(numpy 1.6.2,python 3.2.2)上,输出如下所示:>>> looks weired: b'val1' Traceback (most recent call last):File "D:/..../bug_sample.py...