草庐IT

pagerank_numpy

全部标签

python - 在 python numpy 数组中指定每个对象的数据类型

Thisisasimilarquestionusingdtypesinalist下面的代码片段创建了一个“典型的测试数组”,这个数组的目的是测试我程序中的各种东西。有没有办法或者甚至可以更改数组中元素的类型?importnumpyasnpimportrandomfromrandomimportuniform,randrange,choice#...bunchofsillycode...defgen_test_array(ua,low_inc,med_inc,num_of_vectors):#typical_array=[zone_id,ua,inc,veh,pop,hh,with_se

python - 如何在 numpy 中转储 bool 矩阵?

我有一个表示为numpybool数组的图形(G.adj.dtype==bool)。这是写我自己的图形库的作业,所以我不能使用networkx。我想将它转储到一个文件中,以便我可以摆弄它,但是对于我的生活,我无法弄清楚如何以可恢复的方式使numpy转储它。我试过G.adj.tofile,它将图表正确地(大概)写成了一长串True/False。但是fromfile读到这里就吐了,给出了一个1x1数组,并且loadtxt引发了一个ValueError:invalidliteralforint。np.savetxt有效但将矩阵保存为0/1float列表,并且loadtxt(...,dtype=

python - numpy 例程似乎没有那么快

我正在使用Python进行一些贝叶斯统计。我已经用python和Fortran95编写了它。Fortran代码更快......就像100倍一样。我希望Fortran更快,但我真的希望通过使用numpy我可以得到python代码接近,可能在2的因数内。我分析了python代码,看起来大部分时间都花在做以下事情上:scipy.stats.rvs:从分布中随机抽取。我这样做了~19000次,总时间为3.552秒numpy.slogdet:计算矩阵行列式的对数。我这样做了~10,000次,总共需要2.48秒numpy.solve:求解线性系统:我调用此例程约10,000次,总时间为2.557秒

python - 在 Python3/Numpy 中过滤数组并返回索引

Python3/Numpy中是否有任何内置函数可以过滤数组并返回剩余元素的索引?类似于numpy.argsort的排序。我的过滤器设置了最小和最大阈值-所有低于/高于最小/最大值的值都必须被过滤掉。我看过Python的函数filter,但我看不到使用它提取索引的方法。已编辑:答案中有很多有用的信息,谢谢!正如@SvenMarnach指出的那样,面具就足够了:mask=(min_value现在我必须将此掩码应用到与a形状相同的其他数组,但不确定最好的方法是什么... 最佳答案 命令numpy.wherewillreturntheind

python - 沿任意维度切片 numpy 数组

假设我有一个(40,20,30)numpy数组,并且我有一个函数,在一些工作之后将沿着选定的输入轴返回输入数组的一半。有自动的方法吗?我想避免这样丑陋的代码:defmy_function(array,axis=0):...ifaxis==0:returnarray[:array.shape[0]/2,:,:]-->(20,20,30)arrayelifaxis=1:returnarray[:,:array.shape[1]/2,:]-->(40,10,30)arrayelifaxis=2:returnarray[:,:,:array.shape[2]/2]-->(40,20,15)ar

python - 通过 Numpy 中的逻辑索引获取矩阵的网格

我正在尝试使用最初在MATLAB中的numpy重写一个函数。在MATLAB中有一个逻辑索引部分如下:X=reshape(1:16,4,4).';idx=[true,false,false,true];X(idx,idx)ans=141316当我尝试在numpy中创建它时,我无法获得正确的索引:X=np.arange(1,17).reshape(4,4)idx=[True,False,False,True]X[idx,idx]#Output:array([6,1,1,6])通过逻辑索引从矩阵中获取网格的正确方法是什么? 最佳答案 你也

python - 如何在 Python 中获取多维 Numpy 数组元素的类型

如何获取多维数组的类型?我处理数组,但考虑到数据类型:string、float、Boolean,我必须调整代码,所以我必须得到类型与维度无关,可以是一维或二维或更多维。数据可以是1d的实数,3d的字符串...我想恢复数组的类型,它是一个真实的,它是一个字符串还是一个bool值......不做Array[0]或Array[0][0][0][0]因为维度可以是多种多样的。或者获取数组第一个元素的方法,无论其维度如何。它与np.isreal一起工作有点修改,但我没有找到像isastring或isaboolean这样的等价物...... 最佳答案

python - list(numpy_array) 和 numpy_array.tolist() 之间的区别

在numpy数组上应用list()与调用tolist()有什么区别?我正在检查两个输出的类型,它们都表明我得到的结果是一个list,但是,输出看起来并不完全相同。是不是因为list()不是numpy特定的方法(即可以应用于任何序列)和tolist()是numpy特定的,只是在这种情况下他们返回相同的东西?输入:points=numpy.random.random((5,2))print"Pointstype:"+str(type(points))输出:Pointstype:输入:points_list=list(points)printpoints_listprint"Points_l

python - Numpy:替换数组中的随机元素

我已经用谷歌搜索了一下,没有找到任何好的答案。问题是,我有一个2dnumpy数组,我想在随机位置替换它的一些值。我找到了一些使用numpy.random.choice创建的答案数组的掩码。不幸的是,这不会创建原始数组的View,因此我无法替换它的值。所以这是我想做的一个例子。假设我有一个带有浮点值的二维数组。[[1.,2.,3.],[4.,5.,6.],[7.,8.,9.]]然后我想替换任意数量的元素。如果我能用参数调整就好了有多少元素将被替换。可能的结果如下所示:[[3.234,2.,3.],[4.,5.,6.],[7.,8.,2.234]]我想不出完成此任务的好方法。感谢您的帮助。

Python:如何强制 1 元素 NumPy 数组为二维数组?

我有一段代码对2DNumPy数组进行切片并返回生成的(子)数组。在某些情况下,切片仅索引一个元素,在这种情况下,结果是一个单元素数组:>>>sub_array=orig_array[indices_h,indices_w]>>>sub_array.shape(1,)我怎样才能强制这个数组以一般方式成为二维的?即:>>>sub_array.shape(1,1)我知道sub_array.reshape(1,1)可以工作,但我希望能够将它应用于sub_array而不必担心元素的数量在里面。换句话说,我想编写一个(轻量级)操作,将shape-(1,)数组转换为shape-(1,1)数组,将sh