草庐IT

python - 给定字节缓冲区、数据类型、形状和步幅,如何创建 Numpy ndarray

我有一个缓冲区、数据类型、形状和步幅。我想创建一个重用缓冲区内存的Numpyndarray。有numpy.frombuffer它从缓冲区创建一维数组并重用内存。但是,我不确定我是否可以轻松安全地reshape它并设定步伐。有numpy.ndarrayconstructor它可以引用一个缓冲区,但我不确定它是否会重用内存或者是否会复制它(文档中不清楚)。那么,numpy.ndarray构造函数会做我想做的事吗?或者我可以用什么代替?好的,所以我现在想弄清楚numpy.ndarray构造函数到底在做什么。密码是here.它使用PyArray_BufferConverter来转换缓冲区参数。

python - 两个仅影响零值的稀疏矩阵的点积

我正在尝试计算一个简单的点积,但保留原始矩阵中的非零值不变。玩具示例:importnumpyasnpA=np.array([[2,1,1,2],[0,2,1,0],[1,0,1,1],[2,2,1,0]])B=np.array([[0.54331039,0.41018682,0.1582158,0.3486124],[0.68804647,0.29520239,0.40654206,0.20473451],[0.69857579,0.38958572,0.30361365,0.32256483],[0.46195299,0.79863505,0.22431876,0.59054473]

python - Numpy:制作四元数乘法的批处理版本

我改造了下面的函数defquaternion_multiply(quaternion0,quaternion1):"""Returnmultiplicationoftwoquaternions.>>>q=quaternion_multiply([1,-2,3,4],[-5,6,7,8])>>>numpy.allclose(q,[-44,-14,48,28])True"""x0,y0,z0,w0=quaternion0x1,y1,z1,w1=quaternion1returnnumpy.array((x1*w0+y1*z0-z1*y0+w1*x0,-x1*z0+y1*w0+z1*x0+w

python - 具有强制数据类型和维度的输入 numpy 数组的文档字符串格式

为了举例,假设我有一个函数,它接受两个numpy数组作为输入参数。第一个数组必须是二维的并且只包含float。第二个数组必须是一维的并且只包含bool值。到目前为止,我还没有真正能够找到在文档字符串中指定输入数组数据类型和维度的现有约定。我想到的一种可能的格式(以numpy文档字符串约定为基础)是这样的:defexample_function(arr1,arr2):"""Thisisanexamplefunction.Parameters----------arr1:ndarray(dtype=float,ndim=2)Arraycontainingsomekindofdata.arr

python - 有什么方法可以检查 Python 文件是否符合 Numpy 文档风格?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion我正在从事一个需要Numpy文档的项目。在我使用Java的日子里,我记得有linters检查Eclipse/IDEA中的Javadoc遵守情况;是否有检查Numpy文档样式遵守情况的等效项?我知道PEP257,但它似乎没有针对Numpy文档的任何特定检查。

python - 如何从 numpy 多维数组中获取 k 个最大值的索引

我在StackOverflow上浏览了几个问题,但找不到相关答案。我想从numpyndarray中获取k个最大值的索引。Thislink讨论相同但针对一维数组。二维数组的np.argsort导致元素按行排序。即Note:arrayelementsarenotunique.输入:importnumpyasnpn=np.arange(9).reshape(3,3)>>>narray([[0,1,2],[3,4,5],[6,7,8]])s=n.argsort()>>>sarray([[0,1,2],[0,1,2],[0,1,2]],dtype=int32)此外,importnumpyasnp

python - 索引错误 : boolean index did not match indexed array along dimension 0

在我将Numpy更新到1.13.1之前,我的代码工作正常。现在我得到以下错误IndexError:booleanindexdidnotmatchindexedarrayalongdimension0;dimensionis5butcorrespondingbooleandimensionis4...在这一行抛出:m=arr[np.diff(np.cumsum(arr)>=sum(arr)*i)]我似乎无法理解它。有什么建议吗?这是我的示例代码:a=[1,2,3,4,5]l=[0.85,0.90]s=sorted(a,reverse=False)arr=np.array(s)foriin

python - 为什么在使用 NumPy 进行楼层划分时会显示数据类型(即使它是 native 数据类型)?

通常dtype等同于原生类型时会被隐藏:>>>importnumpyasnp>>>np.arange(5)array([0,1,2,3,4])>>>np.arange(5).dtypedtype('int32')>>>np.arange(5)+3array([3,4,5,6,7])但不知何故,这不适用于底除法或取模:>>>np.arange(5)//3array([0,0,0,1,1],dtype=int32)>>>np.arange(5)%3array([0,1,2,0,1],dtype=int32)为什么会有差异?Python3.5.4、NumPy1.13.1、Windows64位

python - numba 中的@jit 和@vectorize 有什么区别?

什么时候应该使用@vectorize?我尝试了@jit并显示了下面的那部分代码,fromnumbaimportjit@jitdefkma(g,temp):k=np.exp(-(g+np.abs(g))/(2*temp))returnk但我的代码没有加速算法。为什么? 最佳答案 @vectorize用于编写可以一次将一个元素(标量)应用于数组的表达式。@jit装饰器更通用,可以处理任何类型的计算。文档中有对其他好处的详细讨论:http://numba.pydata.org/numba-doc/latest/user/vectorize

python - 检查 DataFrame 或 ndrray 是否包含数字

我坚持了几个小时:我有一个包含电子邮件地址列表的DataFrame,我想从这些电子邮件地址中检查邮件中是否包含数字I.E.roberto123@example.com,如果是,我希望将此数字附加到数组中:我已经尝试过使用DataFrame和ndarraywothnumpy,但它不起作用。这就是我想要做的:mail_addresses=pd.DataFrame(customers_df.iloc[:,0].values)mail_addresses=mail_addresses.dropna(axis=0,how='all')mail_addresses_toArray=mail_add