草庐IT

python - 为什么 pyplot.contour() 要求 Z 是二维数组?

matplotlib.pyplot.contour()函数采用3个输入数组X、Y和Z。数组X和Y指定点的x和y坐标,而Z指定感兴趣函数在点数。我知道np.meshgrid()可以轻松生成用作contour()参数的数组:X=np.arange(0,5,0.01)Y=np.arange(0,3,0.01)X_grid,Y_grid=np.meshgrid(X,Y)Z_grid=X_grid**2+Y_grid**2plt.contour(X_grid,Y_grid,Z_grid)#Worksfine这很好用。方便的是,这也很好用:plt.contour(X,Y,Z_grid)#Works

python - 计算 Vandermonde 矩阵的有效方法

我正在计算Vandermondematrix对于相当大的一维阵列。做到这一点的自然而干净的方法是使用np.vander().但是,我发现这大约是。比基于列表理解的方法慢2.5倍。In[43]:x=np.arange(5000)In[44]:N=4In[45]:%timeitnp.vander(x,N,increasing=True)155µs±205nsperloop(mean±std.dev.of7runs,10000loopseach)#oneofthelistedapproachesfromthedocumentationIn[46]:%timeitnp.flip(np.colu

python - NumPy 是否有 unravel_index() 的反函数?

numpy.unravel_index()将一个形状和一个平面索引放入数组中,并返回表示数组中该索引的元组。有倒数吗?我可以手动计算它,但这似乎一定是某处的内置函数...... 最佳答案 从numpy1.6.0(2011年5月)开始,有一个内置的NumPy函数ravel_multi_indexConvertsatupleofindexarraysintoanarrayofflatindices,applyingboundarymodestothemulti-index.(用户BiRico的评论中也提到了这一点,但实际上应该作为答案出

python - 使用 ctypes 数组作为 numpy 数组时的 PEP 3118 警告

当我尝试将ctypes数组用作numpy数组时收到以下警告消息:Python2.7.1(r271:86832,Nov272010,18:30:46)[MSCv.150032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>importctypes,numpy>>>TenByteBuffer=ctypes.c_ubyte*10>>>a=TenByteBuffer()>>>b=numpy.ctypeslib.as_array(a)C:\Python27\lib\site-pa

python - 在Python中找到两个大数组(矩阵)之间的集合差异

我有两个大的二维数组,我想以行为元素找出它们的集合差。在Matlab中,此代码为setdiff(A,B,'rows')。数组足够大,以至于我能想到的明显循环方法需要很长时间。 最佳答案 这应该有效,但由于正在创建的View的归并排序不可用,目前在1.6.1中已被破坏。它适用于预发布1.7.0版本。这应该是最快的方法,因为View不必复制任何内存:>>>importnumpyasnp>>>a1=np.array([[1,2,3],[4,5,6],[7,8,9]])>>>a2=np.array([[4,5,6],[7,8,9],[1,1

python - 将列值更改为 Pandas 中的列标题

我有以下代码,它采用pandas数据框的一列中的值,并将它们作为新数据框的列。数据框第一列中的值成为新数据框的索引。从某种意义上说,我想把一个邻接表变成一个邻接矩阵。到目前为止,这是代码:importpandasaspaprint"OriginalDataFrame"#Createadataframeoldcols={'col1':['a','a','b','b'],'col2':['c','d','c','d'],'col3':[1,2,3,4]}a=pa.DataFrame(oldcols)printa#Thecolumnsofthenewdataframewillbetheval

python - 相当于 MATLAB 元胞数组的 Numpy

我想在Numpy中创建一个类似MATLAB的元胞数组。我怎样才能做到这一点? 最佳答案 Matlab元胞数组aremostsimilar到Python列表,因为它们可以容纳任何对象-但scipy.io.loadmat将它们导入为numpy对象数组-这是一个dtype=object的数组。老实说,尽管您使用Python列表也一样好-如果您保存的是一般对象,您将失去numpy数组的几乎所有优点(这些数组旨在保存一系列值,每个值都具有相同的数量内存)。 关于python-相当于MATLAB元胞

Python/Scipy 插值 (map_coordinates)

我正在尝试使用scipy进行一些插值。我已经查看了很多示例,但我没有找到我想要的东西。假设我有一些数据,其中行和列变量可以在0到1之间变化。每行和列之间的增量变化并不总是相同(见下文)。|0.000.250.801.00------|----------------------------0.00|1.406.501.501.800.60|8.907.301.101.091.00|4.509.201.801.20现在我希望能够获取一组x,y点并确定插值。我知道我可以用map_coordinates做到这一点。我想知道是否有任何简单/聪明的方法可以为数据数组中的适当索引创建x,y值。例如

python - Numpy->Cython 转换 : Compile error:Cannot convert 'npy_intp *' to Python object

我有以下代码可以正确转换为cython:fromnumpyimport*##returnswinningplayersor[]ifundecided.defscore(board):scores=[]checked=zeros(board.shape)foriinxrange(len(board)):forjinxrange(len(board)):ifchecked[i,j]==0andboard[i,j]!=0:...dostuf我尝试转换为cython:importnumpyasnpcimportnumpyasnp@cython.boundscheck(False)@cython

python - 如何提取较大数字 Numpy 数据类型的位

Numpy有一个库函数,np.unpackbits,它会将一个uint8解包成一个长度为8的位向量。有没有相应快速的方法来解包更大的数字类型?例如。uint16或uint32。我正在研究一个涉及数字之间频繁转换的问题,用于数组索引及其位向量表示,而瓶颈是我们的打包和解包函数。 最佳答案 您可以使用view和unpackbits执行此操作输入:unpackbits(arange(2,dtype=uint16).view(uint8))输出:[00000000000000000000000100000000]对于a=arange(int