我正在创建一个卷积稀疏自动编码器,我需要将一个充满值的4D矩阵(其形状为[samples,N,N,D])转换为一个稀疏矩阵。对于每个样本,我都有DNxN特征图。我想将每个NxN特征图转换为稀疏矩阵,其中最大值映射到1,所有其他值映射到0。我不想在运行时执行此操作,而是在图形声明期间执行此操作(因为我需要使用生成的稀疏矩阵作为其他图形操作的输入),但我不明白如何获取索引来构建稀疏矩阵。 最佳答案 您可以使用tf.where和tf.gather_nd来做到这一点:importnumpyasnpimporttensorflowastf#M
当我执行以下代码时,我得到一个备用矩阵:importnumpyasnpfromscipy.sparseimportcsr_matrixrow=np.array([0,0,1,2,2,2])col=np.array([0,2,2,0,1,2])data=np.array([1,2,3,4,5,6])sp=csr_matrix((data,(row,col)),shape=(3,3))print(sp)(0,0)1(0,2)2(1,2)3(2,0)4(2,1)5(2,2)6我想向这个稀疏矩阵添加另一列,因此输出为:(0,0)1(0,2)2(0,3)7(1,2)3(1,3)7(2,0)4(2
我有一个pytorch稀疏张量,我需要使用此切片[idx][:,idx]对行/列进行切片,其中idx是索引列表,使用提到的切片在普通浮点张量上产生我想要的结果。是否可以在稀疏张量上应用相同的切片?这里的例子:#constructingsparsematrixi=np.array([[0,1,2,2],[0,1,2,1]])v=np.ones(4)i=torch.from_numpy(i.astype("int64"))v=torch.from_numpy(v.astype("float32"))test1=torch.sparse.FloatTensor(i,v)#constructi
如果没记错的话,在R中有一种称为因子的数据类型,当在DataFrame中使用时,它可以自动解压缩到回归设计矩阵的必要列中。例如,包含True/False/Maybe值的因子将转换为:100010or001为了使用较低级别的回归代码。有没有办法使用pandas库实现类似的东西?我看到Pandas中有一些回归支持,但由于我有自己定制的回归例程,我真的很感兴趣从异构数据构build计矩阵(2dnumpy数组或矩阵),支持映射来回映射numpy对象的列和派生它的PandasDataFrame。更新:这是一个数据矩阵的示例,其中包含我正在考虑的那种异构数据(该示例来自Pandas手册):>>>d
我已经尝试通过jquery按顺序对记录字典进行排序,但没有成功,我不知道在哪里按名称再次排序。我在git上询问社区但没有人回答我,我正在尝试按odoo序列排序。使用模块web_widget_x2many_2d_matrix和sale_order_variant_mgmt我修改了python代码,如果我调试记录列表,排序是预期的,但是当加载javascript代码时,它按名称排序并且无法调试问题所在@api.onchange('product_tmpl_id')def_onchange_product_tmpl_id(self):self.variant_line_ids=[(6,0,[
我正在尝试从巨大的(1Mx1M)CSR矩阵(SciPy)中过滤小于10的值。由于我所有的值都是整数,除以10再乘以10就可以了,但我想知道是否有更好的方法来过滤元素。编辑:下面的答案有效。检查您是否拥有最新版本的SciPy。 最佳答案 你也可以选择不那么笨拙但可能更慢的方法:m=m.multiply(m>=10)要了解发生了什么:>>>m=scipy.sparse.csr_matrix((1000,1000),dtype=np.int)>>>m[np.random.randint(0,1000,20),np.random.randi
从仅包含零的稀疏矩阵中有效删除列的最佳方法是什么。我有一个我创建并填充了数据的矩阵:matrix=sp.sparse.lil_matrix((100,100))我现在想删除~最后20列,它们只包含零数据。我该怎么做? 最佳答案 如果这只是一个numpy数组,X,那么您可以说X!=0,这将为您提供一个与相同形状的bool数组X,然后您可以使用bool数组索引X,即non_zero_entries=X[X!=0]但这是一个不支持bool索引的稀疏矩阵,如果您尝试X!=0也不会给您想要的东西——它只返回一个看起来像仅当它们是完全相同的矩阵
scipy.sparse.coo_matrix.max返回每行或每列的最大值,给定一个轴。我想知道的不是值,而是每行或列的最大值的索引。我还没有找到一种有效的方法,所以我很乐意接受任何帮助。 最佳答案 我建议研究代码moo._min_or_max_axis其中moo是一个coo_matrix。mat=mat.tocsc()#foraxis=0mat.sum_duplicates()major_index,value=mat._minor_reduce(min_or_max)not_full=np.diff(mat.indptr)[m
我想检查是否有两个csr_matrix是平等的。如果我这样做:x.__eq__(y)我得到:raiseValueError("Thetruthvalueofanarraywithmorethanone"ValueError:Thetruthvalueofanarraywithmorethanoneelementisambiguous.Usea.any()ora.all().但是,这个效果很好:assert(zinxforziny)有更好的方法吗?也许改用一些scipy优化函数?非常感谢 最佳答案 我们可以假设它们的形状相同吗?In[
我有一个很大的csr_matrix,我对前十个值及其每行的索引感兴趣。但是我没有找到一种像样的方法来操纵矩阵。这是我目前的解决方案,主要思想是逐行处理它们:row=csr_matrix.getrow(row_number).toarray()[0].ravel()top_ten_indicies=row.argsort()[-10:]top_ten_values=row[row.argsort()[-10:]]这样做,csr_matrix的优势没有得到充分利用。它更像是一个蛮力解决方案。 最佳答案 在这种情况下,我看不出csr格式有