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

python-切片一个numpy结构的一维数组以获取记录的一部分【代码】

我有一个numpy的一维结构化数组,我只想获取一条记录的一部分.我试图弄清楚如何分割这种类型的请求.这是我的代码:summary_stat_list = ['mean', 'variance', 'median', 'kurtosis', 'skewness'] model_summary_stats = np.zeros(5,dtype=[('statistic','object'),('f1', 'float'),('f2', 'float'),('f3', 'float'),('m1', 'float'),('m2', 'float'),('m3', 'float'),('t3', 'float'),('t2', 'float'),('t1', 'float'),('prom1', 'f...

python-如何获取numpy掩码数组中的掩码行数?【代码】

因此,我有一个numpy数组,其中包含许多numpy数组,其中一些数组的掩码值如下所示:[[1 2 3][-- -- --][7 8 9]]在较大的numpy数组(在本例中为1)中,获取掩码的numpy数组(例如[—]之类)的数量的最有效方法是什么. 谢谢!解决方法:Masked arrays have a .mask attribute由布尔数组组成,该布尔数组在屏蔽任何值的位置为True.如果要知道多少行包含至少一个掩码值,可以使用:x.mask.any(axis=1).sum()其中x是您的掩码数组.如果您只对屏蔽所有...

python-numpy数组到文件np.savetxt【代码】

当我使用np.savetxt(file.txt,(arr1,arr2,arr3))时,将多个numpy数组保存到文件中的最佳方法是什么?数组是按列而不是按行保存的,因此很难导入excel.如何以更标准的方式保存阵列? 谢谢解决方法:我对此有几乎直接的答案是这里概述http://rinocloud.github.io/rinocloud-tutorials/saving-data-with-numpy 使用vstack 使用vstack从numpy保存多个数组 假设我们有一个要保存到文件的numpy数组x = np.random.random_integers(0, 10, siz...

python-将bincount应用于2D numpy数组的每一行【代码】

有没有办法使用“轴= 1”应用bincount?所需的结果将与列表理解相同:import numpy as np A = np.array([[1,0],[0,0]]) np.array([np.bincount(r,minlength = np.max(A) + 1) for r in A])#array([[1,1] # [2,0]])解决方法:np.bincount不适用于沿着特定轴的2D阵列.为了通过对np.bincount的单个矢量化调用获得理想的效果,可以创建一维ID数组,以便即使元素相同,不同的行也将具有不同的ID.当使用一次具有这些ID的np.bincount调用...

python-Clojure使用scipy和numpy

有什么好方法可以从clojure调用python,作为使用scipy,numpy,scikit-learn等进行数据科学的一种方法. 我知道clojure的实现是在python而不是java上运行的,但这对我不起作用,因为我还需要在项目中调用java库.我也了解Jython,但我不知道将这种方法与Clojure结合使用的一种干净方法. 我想在我的项目中使用Clojure,因为我更喜欢使用Clojure作为一种语言,但是我不能否认Python有一个令人难以置信的社区,以及周围一些最漂亮,设计最好的库.解...

python-根据条件分配numpy数组【代码】

编写此numpy python代码的更好方法是什么?age[age < 20.0] = 0.0 age[age > 0.0] = 1.0 mature = age在此,对于年龄>> 10的所有值,“成熟”包含1.0. 20.0,否则为0.0解决方法: mature = age = (age > 20.0).astype(float)年龄> 20.0是一个布尔数组. astype(float)将数组转换为float dtype,该类型将True更改为1.0,将False更改为0.0.请注意,这还会将NaN转换为0. 要保留NaN,就像原始代码一样,可以使用np.clip:mature = age = np.cli...

python-在numpy数组中加权平面的最佳方法是什么?【代码】

我有以下代码,其中w是兼容维的一维numpy数组,而M是4D数组,i = 0 for weight in w:M[:, :, i, :] *= weighti += 1有没有更好的方法可以达到相同的效果?解决方法:您将使用w中的元素沿轴= 2缩放M,这是一维数组.因此,您需要将w扩展到np.newaxis/None的2D数组,这将使w的扩展版本与M之间的轴对齐.然后,在这两个数组之间执行逐元素乘法以引入broadcasting作为矢量化解决方案,例如-M *= w[:,None]如果M的axis = 2的长度大于w中的元素数,则...

python-仅使用NumPy einsum处理上三角元素【代码】

我正在使用numpy einsum来计算形状为(3,N)的列向量pts数组的点积,并得出所有点积为形状(N,N)的矩阵点.这是我使用的代码:dotps = np.einsum('ij,ik->jk', pts, pts)这可行,但是我只需要主对角线上方的值.即.结果的上三角部分,不包括对角线.是否可以用einsum计算这些值?还是以比使用einsum来计算整个矩阵更快的任何其他方式? 我的pts数组可能很大,因此,如果我只能计算所需的值,那将使计算速度加倍.解决方法:您可以切片相关列,然后...

为什么在(nopython = True)时numba引发有关numpy方法的错误?【代码】

我正在尝试使用numba来提高我编写的某些速度很慢的代码的速度.花费的大部分时间都花在单个功能上.首先我尝试使用@jit 在我的函数定义之前,它改善了时序.然后,我尝试使用@jit(nopython=True) 代替.根据我在文档中阅读的内容,应该支持我在函数中使用的numpy方法(例如,转置).但是,我收到一个错误Failed at nopython (nopython frontend) Untyped global name 'transpose'解决方法:为了使用转置,您需要以numpy数组的方法形式调用它(如d...

python-在Numpy中有效地构建“滚动”行的矩阵【代码】

我想从一维数组构造一个(n,n)数组,其中每行相对于上一行移动(带换行).下面的代码执行此操作:import numpy as npr = np.array([1, 2, 3, 4, 5]) n = len(r) MM = np.zeros((n, n), dtype=r.dtype) for k in range(n):MM[k, :] = np.roll(r, k)print(MM)结果是:[[1 2 3 4 5][5 1 2 3 4][4 5 1 2 3][3 4 5 1 2][2 3 4 5 1]]有没有一种方法可以更快地执行此Numpy,也就是避免在Numpy中使用较大的r避免for循环?解决方法:看一下scipy.l...

Python – 没有python解释器运行numpy

我有一个引用python脚本的.x3d代码.我正在尝试实现使用numpy模块的某些功能.但是,我只能从Python导入内置模块. 我正在寻找一种方法将numpy模块导入脚本而不必调用解释器(即“test.py”,而不是“python test.py”). 目前我得到“ImportError:没有名为numpy的模块”. 我的问题是:有没有办法导入numpy模块而无需从解释器调用?有没有办法将numpy作为Python的内置模块之一?解决方法:>找到系统上安装numpy的位置.对我来说,它在这里:...

python-点积用于任意形状的NumPy数组【代码】

给定两个任意形状的numpy.ndarray对象A和B,我想计算一个numpy.ndarray C,其属性为C [i] == np.dot(A [i],B [i])为了我我怎样才能做到这一点? 示例1:A.shape ==(2,3,4)和B.shape ==(2,4,5),那么我们应该有C.shape ==(2,3,5). 示例2:A.shape ==(2,3,4)和B.shape ==(2,4),那么我们应该有C.shape ==(2,3).解决方法:这是一个通用的解决方案,它使用一些重塑和np.einsum来覆盖各种情况/任意形状.einsum在这里有帮助,因为我们需要沿输入...

python-将numpy数组另存为二进制以从FORTRAN中读取【代码】

我有一系列的numpy数组,我需要将这些numpy数组作为需要从FORTRAN中读取的原始二进制float32(不包含任何标头信息)保存在循环中.import numpy as np f=open('test.bin','wb+') for i in range(0,10):np_data=np.random.rand(10,5)fortran_data=np.asfortranarray(np_data,'float32')fortran_data.tofile(f)f.close()这是正确的方法,以便我可以正确地从FORTRAN中读取在python中创建的此二进制文件.您的建议将受到高度赞赏解决方法:您编...

python-从列表和其他单个值创建numpy数组的最佳方法【代码】

我想从列表条目和一些其他单独的值创建一个数组. 我正在使用以下似乎笨拙的方法:x=[1,2,3] y=some_variable1 z=some_variable2 x.append(y) x.append(z) arr = np.array(x)#print arr --> [1 2 3 some_variable1 some_variable2]有更好的解决方案吗?解决方法:您可以使用列表添加将所有放置在列表中的变量添加到较大的列表中,如下所示:arr = np.array(x + [y, z])

python-如何在Numpy中实现二次采样的RBF(径向基函数)?【代码】

我试图按照CalTech lecture here的描述在Python和Numpy中实现径向基函数.数学对我来说似乎很清楚,所以我发现它不起作用(或似乎不起作用)很奇怪.这个想法很简单,一个人为每个高斯形式选择一个子采样中心的数量,形成一个核矩阵,并试图找到最佳系数.即求解Kc = y,其中K是最小平方的高斯核(克)矩阵.为此,我做到了:beta = 0.5*np.power(1.0/stddev,2) Kern = np.exp(-beta*euclidean_distances(X=X,Y=subsampled_data_points,squared=T...