我想根据特定列对矩阵进行排序.有一个sort函数,但它独立地排序所有列.
例如,如果我的矩阵data是:
1 3
5 7
-1 4
Run Code Online (Sandbox Code Playgroud)
然后所需的输出(按第一列排序)将是:
-1 4
1 3
5 7
Run Code Online (Sandbox Code Playgroud)
但输出sort(data)是:
-1 3
1 4
5 7
Run Code Online (Sandbox Code Playgroud)
如何按第一列对此矩阵进行排序?
我正在使用Matrix来缩放和旋转位图.现在我想知道preconcat和postconcat之间有什么区别,或者更确切地说是以下两者之间的区别:
从我能想到的到目前为止,setRotate总是覆盖整个矩阵,而使用preRotate和postRotate我可以对矩阵应用多个更改(例如缩放+旋转).但是,使用postRotate或preRotate不会对我使用它们的情况造成任何不同的结果.
我正在寻找一种Pythonic方法来获取(方形)矩阵的所有对角线,表示为列表列表.
假设我有以下矩阵:
matrix = [[-2, 5, 3, 2],
[ 9, -6, 5, 1],
[ 3, 2, 7, 3],
[-1, 8, -4, 8]]
Run Code Online (Sandbox Code Playgroud)
然后大对角线很容易:
l = len(matrix[0])
print [matrix[i][i] for i in range(l)] # [-2, -6, 7, 8]
print [matrix[l-1-i][i] for i in range(l-1,-1,-1)] # [ 2, 5, 2, -1]
Run Code Online (Sandbox Code Playgroud)
但是我无法想出一种生成所有对角线的方法.我正在寻找的输出是:
[[-2], [9, 5], [3,-6, 3], [-1, 2, 5, 2], [8, 7, 1], [-4, 3], [8],
[2], [3,1], [5, 5, 3], [-2, -6, 7, 8], [9, 2, -4], [3, 8], [-1]]
Run Code Online (Sandbox Code Playgroud) 所以我有一个n x d矩阵和一个n x 1向量.我正在尝试编写一个代码来通过向量减去矩阵中的每一行.
我目前有一个for迭代循环,并i通过向量减去矩阵中的第-行.有没有办法简单地通过向量减去整个矩阵?
谢谢!
当前代码:
for i in xrange( len( X1 ) ):
X[i,:] = X1[i,:] - X2
Run Code Online (Sandbox Code Playgroud)
这是X1矩阵的i第 - 行并且X2是向量.我可以做到这样我不需要for循环吗?
matrixNumPy中班级的状态是什么?
我一直被告知我应该使用这门ndarray课程.matrix在我编写的新代码中使用类是否值得/安全?我不明白为什么我应该使用ndarrays代替.
是否可以从矩阵中按名称获取矩阵列?
我试过各种各样的方法,myMatrix["test", ]但似乎没什么用.
如何连接相同列但不同行数的矩阵?例如,我想连接a ( dim(a) = 15 7000 )和b (dim(b) = 16 7000),我希望结果是31按7000列的行矩阵.我可以为不同行和列的矩阵执行此操作.假设我想将15行和7000列的矩阵与16行和7500列中的另一列组合.我可以用它创建一个数据集吗?
我正在查看这个答案中的基准,并希望将它们与diag(用于不同的答案)进行比较.不幸的是,似乎diag需要很长时间:
nc <- 1e4
set.seed(1)
m <- matrix(sample(letters,nc^2,replace=TRUE), ncol = nc)
microbenchmark(
diag = diag(m),
cond = m[row(m)==col(m)],
vec = m[(1:nc-1L)*nc+1:nc],
mat = m[cbind(1:nc,1:nc)],
times=10)
Run Code Online (Sandbox Code Playgroud)
评论:我测试了这些identical.我从这个家庭作业问题的答案中选了一个"cond" .结果类似于整数矩阵,1:26而不是letters.
结果:
Unit: microseconds
expr min lq mean median uq max neval
diag 604343.469 629819.260 710371.3320 706842.3890 793144.019 837115.504 10
cond 3862039.512 3985784.025 4175724.0390 4186317.5260 4312493.742 4617117.706 10
vec 317.088 329.017 432.9099 350.1005 629.460 651.376 10
mat 272.147 …Run Code Online (Sandbox Code Playgroud) 我现在正在使用Python和MATLAB,我在Python中有一个2D数组,我需要将其写入文件,然后能够将其作为矩阵读入MATLAB.关于如何做到这一点的任何想法?
谢谢!