草庐IT

numpy-ufunc

全部标签

python - 在 Python 的 NumPy 中确定最高值的索引

我想生成一个数组,其中索引为每行的最高最大值。a=np.array([[1,2,3],[6,5,4],[0,1,0]])maxIndexArray=getMaxIndexOnEachRow(a)printmaxIndexArray[[2],[0],[1]]有一个np.argmax函数,但它似乎没有执行我想要的... 最佳答案 argmax()函数做你想做的事:printa.argmax(axis=1)array([2,0,1]) 关于python-在Python的NumPy中确定最高值的

python - 屏蔽 numpy 数组中的圆形扇区

我有一个代码可以将一个numpy数组切成一个圆圈。我希望仅从圆中恢复特定角度范围内包含的值并屏蔽数组。例如:用包含在圆的0度到45度之间的(x,y)位置屏蔽原始数组。是否有一种pythonic方式可以做到这一点?这是我的(简化的)原始代码:importnumpyasnpmatrix=np.zeros((500,500))x=240y=280radius=10mask=np.ogrid[x-radius:x+radius+1,y-radius:y+radius+1]matrix[mask]提前致谢编辑:我忽略了半径可以变化。 最佳答案

python - numpy 梯度函数和数值导数

numpy.gradient函数返回的数组取决于数据点的数量/数据点的间距。这是预期的行为吗?例如:y=lambdax:xx1=np.arange(0,10,1)x2=np.arange(0,10,0.1)x3=np.arange(0,10,0.01)plt.plot(x1,np.gradient(y(x1)),'r--o')plt.plot(x2,np.gradient(y(x2)),'b--o')plt.plot(x3,np.gradient(y(x3)),'g--o')返回阴谋。只有y(x1)的梯度返回正确的结果。这里发生了什么?有没有更好的方法使用numpy计算数值导数?干杯

python - 在 Python 中创建垂直 NumPy 数组

我在Python中使用NumPy来处理数组。这是我用来创建垂直阵列的方式:importnumpyasnpa=np.array([[1],[2],[3]])有没有更简单直接的方法来创建垂直阵列? 最佳答案 您可以使用reshape或vstack:>>>a=np.arange(1,4)>>>aarray([1,2,3])>>>a.reshape(3,1)array([[1],[2],[3]])>>>np.vstack(a)array([[1],[2],[3]])此外,您可以使用broadcasting为了reshape你的阵列:In[3

python - 添加列表和 NumPy 数字

如果您向列表中添加一个整数,您会收到列表的__add__函数引发的错误(我想):>>>[1,2,3]+3Traceback(mostrecentcalllast):File"",line1,inTypeError:canonlyconcatenatelist(not"int")tolist如果将列表添加到NumPy数组,我假设NumPy数组的__add__函数将列表转换为NumPy数组并添加列表>>>np.array([3])+[1,2,3]array([4,5,6])但是下面会发生什么?>>>[1,2,3]+np.array([3])array([4,5,6])列表如何知道如何处理N

python - 为numpy中的多个切片赋值

在Matlab中,您可以为同一列表的多个切片分配一个值:>>a=1:10a=12345678910>>a([1:3,7:9])=10a=10101045610101010如何在Python中使用numpy数组执行此操作?>>>a=np.arange(10)>>>aarray([0,1,2,3,4,5,6,7,8,9])>>>a[1:3,7:9]=10IndexError:toomanyindices 最佳答案 您也可以考虑使用np.r_:http://docs.scipy.org/doc/numpy/reference/genera

python - python 中的 timeit 模块无法识别 numpy 模块

我想测试2个相同列表之间的处理时间,特别是普通列表和numpy列表。我的代码是importtimeitimportnumpyasnpt=timeit.Timer("range(1000)")printt.timeit()u=timeit.Timer("np.arange(1000)")printu.timeit()t的计算很好,但u的计算出现NameError:globalname'np'isnotdefined被列出。我应该如何编码以获得处理时间? 最佳答案 timeit.Timer类可以以两种不同的方式使用。它可以采用源代码进行

python - 根据其索引初始化 NumPy 数组

我正在使用NumPy创建几个多维数组并根据索引对它们进行初始化,如下所示:pos_data=[]# Sometypicalvaluesd=2#Couldalsobe3vol_ext=(1000,500)#Ifd=3,thiswillhaveanotherentryratio=[5.0,8.0]#Again,ifd=3,itwillhaveanotherentryforiinrange(d):pos_data.append(np.zeros(vol_ext))ifd==2:foryinrange(vol_ext[1]):forxinrange(vol_ext[0]):pos_data[0

python - 删除 numpy 数组末尾的 dtype

我正在编写一种从数据文件创建数组的方法。该方法如下所示:importnumpydefreadDataFile(fileName):try:withopen(fileName,'r')asinputs:data=Noneforlineininputs:line=line.strip()items=line.split('\t')ifdata==None:data=numpy.array(items[0:len(items)])else:data=numpy.vstack((data,items[0:len(items)]))returnnumpy.array(data)exceptIOE

python - Numpy 的 'linalg.solve' 和 'linalg.lstsq' 没有给出与 Matlab 的 '\' 或 mldivide 相同的答案

我正在尝试在Python上实现最小二乘曲线拟合算法,我已经在Matlab上编写了它。但是,我无法获得正确的变换矩阵,而且问题似乎发生在求解步骤。(编辑:我的变换矩阵在Matlab中非常准确,但在Python中完全不准确。)我在网上看了很多资源,它们都表明要翻译Matlab的“mldivide”,如果矩阵是方阵和非奇异矩阵,则必须使用“np.linalg.solve”,而“np.linalg.lstsq”'否则。但是我的结果不匹配。问题是什么?如果它与函数的实现有关,那么mldivide在numpy中的正确翻译是什么?我在下面附上了两个版本的代码。它们本质上是完全相同的实现,除了求解部分