草庐IT

pagerank_numpy

全部标签

python - 将字节数组转换回 numpy 数组

您可以使用.tobytes()函数将numpy数组转换为字节。如何将它从这个字节数组解码回numpy数组?我对形状为(28,28)的数组i进行了这样的尝试>>k=i.tobytes()>>np.frombuffer(k)==i错误也尝试过使用uint8。 最佳答案 关于您正在做的事情的几个问题:frombuffer将始终将输入解释为一维数组。这是documentation的第一行.所以你必须reshape为(28,28)。默认的dtype是float。因此,如果您没有序列化float,那么您将必须手动指定dtype(先验的,没有人能

python - 根据一列中的值屏蔽二维 numpy 数组

假设我有以下numpy数组:a=[[1,5,6],[2,4,1],[3,1,5]]我想屏蔽所有在第一列中有1的行。也就是我要[[--,--,--],[2,4,1],[3,1,5]]这可以使用numpy掩码数组操作来完成吗?怎么做到的?谢谢。 最佳答案 importnumpyasnpa=np.array([[1,5,6],[2,4,1],[3,1,5]])np.ma.MaskedArray(a,mask=(np.ones_like(a)*(a[:,0]==1)).T)#Returns:masked_array(data=[[-----

python - Numpy 无法从 dtype 转换 ufunc 乘法输出

我想将int16数组与float数组相乘,自动舍入,但这失败了:importnumpyA=numpy.array([1,2,3,4],dtype=numpy.int16)B=numpy.array([0.5,2.1,3,4],dtype=numpy.float64)A*=B我得到:TypeError:Cannotcastufuncmultiplyoutputfromdtype('float64')todtype('int16')withcastingrule'same_kind' 最佳答案 2种解决方法:你可以通过替换来解决这个问题

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 - 相当于 MATLAB 元胞数组的 Numpy

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

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

python - 为什么 numpy.zeros 占用空间小

我想知道为什么numpy.zeros占用这么小的空间?x=numpy.zeros(200000000)这不占用内存,而x=numpy.repeat(0,200000000)占用大约1.5GB。numpy.zeros是否创建一个空指针数组?如果是这样,在cython中更改指针后,有没有办法将数组中的指针设置回空?如果我使用:x=numpy.zeros(200000000)x[0:200000000]=0.0内存使用率上升。有没有办法更改一个值,然后将其更改回numpy.zeros最初在python或cython中的格式? 最佳答案 您

python - 如何展平在第二个轴上具有不同长度的 2d numpy 数组?

我有一个像这样的numpy数组:myArray=np.array([[1,2],[3]])但我不能把它弄平,In:myArray.flatten()Out:array([[1,2],[3]],dtype=object)如果我在第二个轴上将数组更改为相同的长度,那么我可以将其展平。In:myArray2=np.array([[1,2],[3,4]])In:myArray2.flatten()Out:array([1,2,3,4])我的问题是:我可以使用类似myArray.flatten()的东西,不管数组的维度和它的元素的长度,并得到输出:array([1,2,3])?