- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于给定的矩阵,我从行中减去每行的最大值。在 MATLAB 中,我会做类似的事情
Xm = X - repmat(max(X,[],2), 1, size(X,2));
对于Python,我一直在尝试各种变体
Xm = X - np.matlib.repmat(np.max(X,axis = 1), 1, len(X[0]))
但无济于事!
我究竟错过了什么?多谢。
最佳答案
在 Python/NumPy 中,不需要显式复制数组以使其与另一个数组匹配。尺寸 1(单一尺寸)的尺寸为 automatically expanded in a process they call "broadcasting" .
例如,给定
X = np.array([[1,2,3,4,5],[4,5,6,7,8],[7,8,9,10,11]])
你可以写
X - np.max(X, axis=0)
np.max返回的数组的形状为(5,)
,它与X
的形状兼容((3, 5)
)。 NumPy 从最后一个维度开始对齐形状,如果一个数组的维度少于另一个数组,则在前面填充单个维度。
但是,这个过程有时需要一点帮助。由于 np.max
返回的数组的维度比输入的维度少,因此广播通常不能。匹配这些数组。例如,X - np.max(X, axis=1)
不起作用。
最好的解决方案是使用 np.max
的 keepdims
参数:
X - np.max(X, axis=1, keepdims=True)
另一个选项是在索引中使用 np.newaxis
添加单一维度:
X - np.max(X, axis=1)[:, np.newaxis]
关于python - Python 中的 Repmat 与 MATLAB 中的 Repmat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50956747/
对于给定的矩阵,我从行中减去每行的最大值。在 MATLAB 中,我会做类似的事情 Xm = X - repmat(max(X,[],2), 1, size(X,2)); 对于Python,我一直在尝试
你好,我有一个矩阵 A,我想在 A 的所有维度之前的新维度中重复它 9 次。这是我得到的: >> A = rand(2,6,15,3,2); >> R = repmat(A, [9 1 1 1 1 1
令v为长度为n的行向量。目标是创建一个矩阵 A,其中 m 行全部等于 v。 MATLAB 有一个名为 repmat 的函数来实现此目的。 。可能的代码是 A = repmat(v,[m 1]) 还有另
我想知道是否有办法提高矩阵的功率一个 作为一个数组? 假设我们有这个矩阵 A = 5 4 3 6 然后我们重复它的形状。 >> repmat(A, 5, 1) ans = 5
令v为长度为n的行向量。目标是创建一个矩阵 A,其中 m 行全部等于 v。 MATLAB 有一个名为 repmat 的函数来实现此目的。 。可能的代码是 A = repmat(v,[m 1]) 还有另
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我有一个关于 R 的 matlab 包的问题。这是我得到的结果 library(matlab) a = matrix(1:4,2,2) repmat(a,3,1) [,1] [,2] [1,
我有一个函数可以多次执行以下循环: for cluster=1:max(bins), % bins is a list in the same format as kmeans() IDX outpu
我写了下面的代码来计算矩阵: vec0=repmat(vec,1,9); triw = (bsxfun(@times,vecO(1,:)',yc1)-bsxfun(@times,vecO(2,:)
根据 What is the equivalent of MATLAB's repmat in NumPy ,我尝试使用 python 从 3x3 数组构建 3x3x5 数组。 在 Matlab 中,
我试图找到在 Matlab 中标准化矩阵的最快方法(零均值、单位方差列)。这一切都归结为对矩阵中的所有行应用相同操作的最快方法。我读过的每篇文章都得出了相同的结论:使用 bsxfun 而不是 repm
我正在将一些代码从 R 移植到 julia 以熟悉该语言,但我发现一些模式无法顺利翻译。考虑以下函数, # Ricatti-Bessel and derivatives up to nmax, vec
在下面的函数中,我想做一些更改以使其更快。它本身很快,但我必须在 for 循环中多次使用它,所以需要很长时间。我想如果我用 bsxfun 替换 repmat 会使它更快,但我不确定。我怎样才能做这些替
我想通过将向量自身连接 n 次来从向量创建矩阵。因此,如果我的向量是 mx1,那么我的矩阵将为 mxn,矩阵的每一列都将等于该向量。 以下哪项是最好/正确的方法,或者我不知道有更好的方法? matri
我正在尝试仅使用 repmat 和 reshape 来复制 Kron 产品,我相信我已经非常接近了,但我无法完成最后一次正确的 reshape 。特别是我在 reshape A 时遇到问题 为简单起见
我想转换矩阵b: b(:,:,1) = 1 b(:,:,2) = 3 b(:,:,3) = 5 到矩阵c: c(:,:,1) = 1 1 1
我可以使用以下内容创建一个 10x10x3 矩阵: A(1:10,1:10,1) = 1/4; A(1:10,1:10,2) = 1/2; A(1:10,1:10,3) = 1/4; 如何使用 rep
我当前的任务是使用 gpu 同时训练多个网络。我现在做不到,所以现在我尝试对数组进行一些操作。 a = rand(1000, 1000, 'gpuArray'); tic; for i = 1 : 1
这个问题与这个question有关可能到this other 假设您有两个矩阵 A 和 B。A 是 M×N,B 是 N×K。我想获得一个 M×K 矩阵 C 使得 C(i, j) = 1 - prod(
我是一名优秀的程序员,十分优秀!