草庐IT

pagerank_numpy

全部标签

python - 氢原子的薛定谔方程 : why is numpy displaying a wrong solution while scipy isn't?

我编写了一段代码来求解一维薛定谔方程。虽然numpy.linalg.eig()例程对于谐波振荡器一直运行良好,但它似乎为库仑势增加了一个虚假的解决方案。另一方面,Scipy的sparse.linalg.eigsh()似乎表现不错。这是我的脚本:importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.sparseimportdiagsfromscipy.sparse.linalgimporteigshN=500x0=8xMin,xMax=-x0,x0xstep=(xMax-xMin)/(N-1)x=np.linspace(xMin,xMa

python - numpy: bool 索引和内存使用

考虑以下numpy代码:A[start:end]=B[mask]这里:A和B是列数相同的二维数组;start和end是标量;mask是一维bool数组;(结束-开始)==sum(掩码)。原则上,通过将B的元素直接复制到A中,可以使用O(1)临时存储执行上述操作.这是实践中实际发生的情况,还是numpy为B[mask]构造了一个临时数组?如果是后者,有没有办法通过重写语句来避免这种情况? 最佳答案 线A[start:end]=B[mask]将——根据Python语言定义——首先评估右侧,产生一个包含B的选定行并占用额外内存的新数组。我

python - 创建高程/高度场 gdal numpy python

我想使用python、gdal和numpy创建一些高程/高度场栅格。我被困在numpy(可能还有python和gdal。)在numpy中,我一直在尝试以下操作:>>>a=numpy.linspace(4,1,4,endpoint=True)>>>b=numpy.vstack(a)>>>c=numpy.repeat(b,4,axis=1)>>>carray([[4.,4.,4.,4.],[3.,3.,3.,3.],[2.,2.,2.,2.],[1.,1.,1.,1.]])#ThisistheelevationdataIwant从osgeo导入gdal从gdalconst导入*>>>for

python - 我如何在 numpy 中向量化这个 for 循环?

代码如下:importnumpyasnpX=np.array(range(15)).reshape(5,3)#X'selementvalueismeaninglessflag=np.random.randn(5,4)y=np.array([0,1,2,3,0])#Y'selementvalueinrange(flag.shape[1])andY.shape[0]equalsX.shape[0]dW=np.zeros((3,4))#dW.shapeequals(X.shape[1],flag.shape[1])foriinxrange(5):forjinxrange(4):ifflag[

python - 优化 Python/Numpy 中的数组元素移位

问题:在运行我编写的数据分析代码的行分析后,我发现大约70%的总运行时间集中在对两个不同数组操作例程的调用上。我最终想以实时方式分析数据,因此此处的任何优化都会有很大帮助。这两个函数采用左边的矩阵并将其带到右边的形式(反之亦然)。我感兴趣的矩阵目前存储为NxN二维numpy数组(其中N是偶数)。代码:我编写了以下代码来完成此任务:#Shiftselementsofavectortotheleftbythegivenamount.defVec_shift_L(vec,shift=0):s=vec.sizeout=np.zeros(s,dtype=complex)out[:s-shift]

python - 导入错误 : Missing required dependencies ['numpy' ]

我能够成功运行所有使用pandas的脚本,但突然我所有的PANDASSCRIPTS都给出了这个错误:追溯(最近的调用最后):文件“data_visulaization.py”,第5行,在importpandasaspdFile"/usr/lib64/python2.7/site-packages/pandas/init.py",line18,inraiseImportError("Missingrequireddependencies{0}".format(missing_dependencies))ImportError:Missingrequireddependencies['nu

python - numpy - 使用一些预先计算的映射有效地将值从矩阵复制到矩阵

我有一个大小为I*J的输入矩阵A和一个大小为N*M的输出矩阵B还有一些大小为N*M*2的预先计算的map,它指示B中的每个坐标,A中的坐标。该map没有我可以使用的特定规则或线性度。只是一张看似随机的map。矩阵很大(~5000*~3000)所以创建映射矩阵是不可能的(5000*3000*5000*3000)我设法使用一个简单的映射和循环来做到这一点:foriinrange(N):forjinrange(M):B[i,j]=A[mapping[i,j,0],mapping[i,j,1]]我设法使用索引来做到这一点:B[coords_y,coords_x]=A[some_mapping[

python - 是否有 numpy 库的大 O 复杂性列表?

我正在对算法进行时间复杂度分析,需要知道某些numpy操作具有什么样的复杂度。对于某些人,我假设它们与基础数学运算相匹配。就像np.dot(array1,array2)是O(n)。对于其他人,我不太确定。例如,np.array(my_array)是O(1)吗?还是O(n)?它只是简单地重新分配一个指针,还是遍历列表并复制每个值?我想确定每个操作的复杂性。有什么地方可以找到这些信息吗?或者我应该假设它们匹配数学运算? 最佳答案 BigO复杂性不常与Python和numpy一起使用。它衡量代码如何随着问题的大小而扩展。这在像C这样的编译

python - 将行追加到 NumPy 记录数组

有没有办法将一行附加到NumPyrec.array()?例如,x1=np.array([1,2,3,4])x2=np.array(['a','dd','xyz','12'])x3=np.array([1.1,2,3,4])r=np.core.records.fromarrays([x1,x2,x3],names='a,b,c')append(r,(5,'cc',43.0),axis=0)最简单的方法是将所有列提取为nd.array()类型,将单独的元素添加到每一列,然后重建rec.array()。不幸的是,这种方法内存效率低下。在不分离重建rec.array()的情况下,还有另一种方法

python - 如何按日期过滤 numpy.ndarray?

我有一个二维numpy.array,其中第一列包含datetime.datetime对象,第二列包含整数:A=array([[2002-03-1419:57:38,197],[2002-03-1716:31:33,237],[2002-03-1716:47:18,238],[2002-03-1718:29:31,239],[2002-03-1720:10:11,240],[2002-03-1816:18:08,252],[2002-03-2323:44:38,327],[2002-03-2409:52:26,334],[2002-03-2516:04:21,352],[2002-03-