我希望能够遍历矩阵以将函数应用于每一行。如何针对Numpy矩阵执行此操作?
使用numpy.apply_along_axis()
。假设您的矩阵是2D,则可以这样使用:
import numpy as np
mymatrix = np.matrix([[11,12,13],
[21,22,23],
[31,32,33]])
def myfunction( x ):
return sum(x)
print np.apply_along_axis( myfunction, axis=1, arr=mymatrix )
#[36 66 96]
问题内容: 我正在使用Numpy将数据存储到矩阵中。从R背景开始,有一种极其简单的方法将函数应用于矩阵的行/列或两者。 python / numpy组合是否有类似的东西?编写自己的小实现不是问题,但是在我看来,我想出的大多数版本都将比现有的实现效率低得多/占用更多内存。 我想避免从numpy矩阵复制到局部变量等,这可能吗? 我尝试实现的功能主要是简单的比较(例如,某列中有多少个元素小于数字x,或者
问题内容: 有没有那么冗长的替代方案: 我想出了这个: 这节省了一个缩进,但仍然很丑陋。 我希望看起来像这样的伪代码: 有没有类似的东西存在? 问题答案: 我认为您正在寻找ndenumerate。 关于性能。它比列表理解要慢一些。 如果您担心性能,可以通过查看实现来进一步优化,该实现有两件事,转换为数组并循环。如果知道有数组,则可以调用平面迭代器的属性。
问题内容: 我想知道最好的方法是用scipy.sparse迭代稀疏矩阵的非零条目。例如,如果我执行以下操作: 输出是 因此看来迭代器正在接触每个元素,而不仅仅是非零条目。我看过API http://docs.scipy.org/doc/scipy/reference/generation/scipy.sparse.lil_matrix.html 并搜索了一下,但是我似乎找不到有效的解决方案。 问题
问题内容: 我是Numpy的新手,想替换矩阵的一部分。例如,我有两个由numpy生成的矩阵A,B 最终,我想使A为以下矩阵。 和/或以下 我尝试跟随,但没有用。我现在不知道了:( 甚至我尝试过 检查四个单元是否更改。你有什么主意吗? 问题答案: 这是您可以执行的操作:
问题内容: 我有以下内容: 如何在XYZ_2上执行与在XYZ_2上相同的操作?我会以某种方式首先重塑数组吗? 问题答案: 您似乎正在尝试的最后一个轴 与最后一个 。因此,您可以像这样使用- 相关帖子了解。 为了完整起见,在交换的最后两个轴后,我们当然也可以使用,例如- 这将不如一个高效。 运行时测试- 一般而言,涉及张量时,效率要高得多。由于的轴只有一个,因此我们可以通过重整,使用,获取结果并将其
主要内容:逐元素矩阵乘法,矩阵乘积运算,矩阵点积矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,如下图所示: 注意:必须确保第一个矩阵中的行数等于第二个矩阵中的列数,否则不能进行矩阵乘法运算。 图1:矩阵乘法 矩阵乘法运算被称为向量化操作,向量化的主要目的是减少使用的 for 循环次数或者根本不使用。这样做的目的是为了加速程序的计算。 下面介绍 NumPy 提供的三种矩阵乘法,从而进一步