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

python-Numpy分区对角矩阵【代码】

我想像这样生成分区对角矩阵A 给出矩阵BB = -np.diag(np.ones(n - 2), -1) - np.diag(np.ones(n - 2), 1) + 4 * np.diag(np.ones(n - 1))例如, 有没有一种方法可以不使用循环? 抱歉,第一次错误地上传了矩阵A和B的图形.解决方法:您可以将构建块堆叠到查找表中,然后通过在其中建立索引来构建A:>>> from scipy import sparse >>> >>> n = 5 >>> B = sparse.diags([-1, 4, -1], [-1, 0, 1], (n-1, n-1), dtype=int).A >>> A = spars...

python-使用numpy过滤元组列表中的行【代码】

我正在寻找一种更快的方法,使用numpy并避免循环来过滤出元组列表.A = [(27157, 4),(24814, 0),(1047, 2),(18265, 2),(2857, 4),(23854, 2),(36881, 0)]现在,我必须根据第二个元素(即4)对其进行过滤.如果存在“ 4”,则形成一个列表“ B”,如果不存在,则形成列表“ C”. 那是:B = [(27157, 4),(2857, 4)] C = [(24814, 0),(1047, 2),(18265, 2),(23854, 2),(36881, 0)]解决方法:使用NumPy,您可以使用布尔索引来返回数组:mask = A[:...

python-将函数有效地应用于numpy数组中的球面邻域【代码】

我在Python中有一个浮点值的3D numpy数组.我需要检索半径为r的球体中的所有元素,从中心点P(x,y,z).然后,我要在球体上应用点函数更新其值,并需要到中心点的距离才能执行此操作.我经常执行这些步骤,并且大半径值,所以我想有一个同样有效的解决方案尽可能. 我当前的解决方案仅检查球体边界框中的点,如此处所示:Using a QuadTree to get all points within a bounding circle.代码草图如下所示:# P(x, y, z): center of the sphere f...

python-对于较大的跨产品或外部产品,NumPy比PyTorch更快【代码】

我正在计算大小为(50500)的向量之间的巨大外部乘积,结果发现NumPy这样做的速度比PyTorch快(很多?). 测试如下:# NumPyIn [64]: a = np.arange(50500) In [65]: b = a.copy() In [67]: %timeit np.outer(a, b) 5.81 s ± 56.3 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)-------------# PyTorchIn [73]: t1 = torch.arange(50500) In [76]: t2 = t1.clone()In [79]: %timeit torch.ger(t1, t2) 7.73 s ± 143 ms per...

python-如何在脉冲信号上使用Numpy.FFT【代码】

我刚刚开始学习numpy.fft,所以提前致歉.我有一个包含1000个1和0的元素组成的数组,表示1000ms包含正误的脉冲输入.我想在此阵列上执行rfft.举一个简单的例子,我创建了这个数组,该数组在每个第3个元素上都有一个1,否则为0:freq = 3 for j in range(0, 1000):if freq != 0 and (((j + 1) % freq) == 0):arr3hz.append(1)else:arr3hz.append(0)我期待rfft以某种方式给我3Hz,我使用了以下代码:n = len(arr3hz) d = 1 / 1000 hs = np.ff...

python-应用dataframe方法后numpy数组末尾的额外数据类型【代码】

我将以下代码应用于numpy数组:mad_array = [] for j in data:df = pd.DataFrame(j)print(j)mad_array.append(df.mad())print(mad_array) 输出数组如下所示:[0 10.0 dtype: float64, 0 18.875 dtype: float64, 0 18.375 dtype: float64]有没有一种方法可以去除输出中附加的0(不确定来自何处)和数据类型属性,因此我的输出数组如下所示:[10.0 18.875 18.375]我不确定这是numpy还是DataFrame的行为.解决方法:您可以使用d...

python-如何使用numpy创建范围的二维数组【代码】

我有一个开始和停止索引数组,如下所示:[[0, 3], [4, 7], [15, 18]]并且我想构造一个二维numpy数组,其中每一行都是从相应的起始索引和终止索引对开始的范围,如下所示:[[0, 1, 2],[4, 5, 6],[15, 16, 18]]当前,我正在创建一个空数组并将其填充为for循环:ranges = numpy.empty((3, 3))a = [[0, 3], [4, 7], [15, 18]]for i, r in enumerate(a):ranges[i] = numpy.arange(r[0], r[1])有没有更紧凑,更重要(更快)的方法?可能不涉及使...

python-如何腌制numpy的Inf对象?【代码】

当尝试按numpy(我认为)中的方法腌制对象Inf时,转储进行得很好,但加载失败:>>> cPickle.dump(Inf, file("c:/temp/a.pcl",'wb')) >>> cPickle.load(file("c:/temp/a.pcl",'rb')) Traceback (most recent call last):File "<pyshell#257>", line 1, in <module>cPickle.load(file("c:/temp/a.pcl",'rb')) ValueError: could not convert string to float >>> type(Inf) <type 'float'>这是为什么?而且-有解决此问题的方法吗?我想给...

首页>Python>如果您只是在操纵二进制值序列,您会使用numpy吗?【代码】

当您对二进制值列表进行大量操作时,使用numpy有什么好处吗?小范围内的整数(例如数字1,2和3)如何?解决方法:消除循环是提高性能(10倍)的源泉:import profile import numpy as NPdef np_test(a2darray) :row_sums = NP.sum(a2darray, axis=1)return NP.sum(row_sums)def stdlib_test2(a2dlist) :return sum([sum(row) for row in a2dlist])A = NP.random.randint(1, 6, 1e7).reshape(1e4, 1e3) B = NP.ndarray.tolist(A)profile.ru...

python-Numpy.eig和PCA中的方差百分比【代码】

Picking up from where we left… 因此,我可以使用linalg.eig或linalg.svd来计算PCA.当它们被喂入相同的数据时,每个返回不同的主成分/特征向量和特征值(我目前正在使用虹膜数据集). 看一下here或将PCA应用于Iris数据集的任何其他教程,我会发现特征值是[2.9108 0.9212 0.1474 0.0206]. eig方法为我提供了一套我不介意使用的不同特征值/向量集,不同之处在于这些特征值一经求和就等于维数(4),可用于查找每个分量对特征的贡献总方差. 取...

python numpy学习

以下代码来源于本博文作者观看大神视频并纯手敲。 目录 numpy的属性 创建array numpy的运算1 随机数生成以及矩阵的运算2 numpy的索引 array合并 array分割 numpy的浅拷贝和深拷贝 numpy的属性 import numpy as nparray = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(array) print(array.ndim) # 维度 2 print(array.shape) # 形状 (3, 3) print(array.size) # 大小 9 print(array.dtype) # 元素类型 int32 numpy创建ar...

Python-插入排序在numpy的?【代码】

在numpy中某处有插入排序吗?我的数组需要一个argsort,但是内置的quick,merge和heap不适合几乎排序的数组.解决方法:从numpy 1.17.0 release notes:Timsort has been implemented and is now used in place of mergesort. […] Timsort features improved performace on already or nearly sorted data and performs like mergesort on random data.截至撰写本文时,NumPy 1.17.0尚未发布,但在发布时,您可以通过在sort调用中指定kin...

python-{tuple:NumPy.array}的循环字典【代码】

我有一组{(i,j):NumPy.array}形式的字典k,我想在其上循环NumPy.arrays进行特定评估. 我做了如下的字典:datarr = ['PowUse', 'PowHea', 'PowSol', 'Top'] for i in range(len(dat)): exec(datarr[i]+'={}')因此,我始终可以通过更改原始字符串列表来更改要在更大的代码集中评估的数据集.但是,这意味着我必须将我的字典作为datarr中k的eval(k)调用. 结果,我现在想做的循环看起来像这样:for i in filarr: for j in buiarr: for ...

在Python / Numpy中一次分配多个数组索引【代码】

我希望快速(希望没有for循环)生成以下形式的Numpy数组:array([a,a,a,a,0,0,0,0,0,b,b,b,0,0,0, c,c,0,0....])其中a,b,c和其他值在不同点的不同范围重复.我真的在想这样的事情:import numpy as np a = np.zeros(100) a[0:3,9:11,15:16] = np.array([a,b,c])这显然是行不通的.有什么建议么? 编辑(jterrace回答了原始问题):数据以N * M Numpy数组的形式出现.每行大多为零,偶尔散布着非零数字序列.我想用序列的最后一个值替换每个这...

python-如何引用numpy数组对象?【代码】

我有numpy数组:>>> datadtype([('date', '|O4'), ('value', '<f8')]其中date对象是Python datetime.date对象,它由一年中的所有天组成:[2010-1-1,…,2010-12-31],而value对象是对应日期的值数据. 我如何仅返回例如9月的价值数据?解决方法:您可以使用布尔数组为数据建立索引:import numpy as np import datetime as dt dates=[dt.date(2010,1,1)+dt.timedelta(days=i) for i in range(365)] values=range(365) data=np.array(zip...