标签: diagonal

获取Python中矩阵/列表列表中的所有对角线

我正在寻找一种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)

python matrix diagonal

44
推荐指数
5
解决办法
6万
查看次数

用CSS在div背景中绘制对角线

我有div预览框

HTML:

<div class="preview-content">PREVIEW</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.preview-content {
    background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAYAAACp8Z5+AAAAGklEQVQIW2NkYGD4D8SMQAwGcAY2AbBKDBUAVuYCBQPd34sAAAAASUVORK5CYII=) repeat;
    width: 100%;
    min-height: 300px;
    max-height: 300px;
    line-height: 300px;
    text-align: center;
    vertical-align: middle;
     font-size: 2em;
}
Run Code Online (Sandbox Code Playgroud)

问:如何将对角线添加到div背景中,如图中所示

注意:尽可能使用CSS

预习

先感谢您

css background line diagonal css-shapes

44
推荐指数
7
解决办法
15万
查看次数

为什么诊断功能这么慢?[在R 3.2.0或更早版本]

我正在查看这个答案中的基准,并希望将它们与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)

r matrix diagonal

43
推荐指数
1
解决办法
906
查看次数

NumPy第k个对角线指数

我想做一个numpy.array的第k个对角线的算术.我需要那些指数.例如,类似于:

>>> a = numpy.eye(2)
>>> a[numpy.diag_indices(a, k=-1)] = 5
>>> a
array([[ 1.,  0.],
       [ 5.,  1.]])
Run Code Online (Sandbox Code Playgroud)

不幸的是,diag_indices只返回包含主对角线的索引,所以在我正在做的那一刻:

a += numpy.diag([5], -1)
Run Code Online (Sandbox Code Playgroud)

但这似乎不太好或不健全.:-)

numpy有没有办法获得除主要对角线以外的指数?

python numpy indices diagonal

16
推荐指数
2
解决办法
3913
查看次数

如何在Octave中仅计算矩阵乘积的对角线?

Octave有没有办法只计算和存储矩阵乘积的对角线?

基本上喜欢这样做: vector = diag(A*B);

我不关心A*B除了对角线上的任何值.矩阵大小是围绕80k x 1212 x 80k,所以即使我不关心速度/额外的内存它只是惯于适合在RAM中.

奇怪的是,因为Octave是一个包含大量数据集和对角线的包非常重要,所以它应该是可能的.

matlab matrix octave matrix-multiplication diagonal

14
推荐指数
2
解决办法
7913
查看次数

矩阵的反对角线的总和

我试图沿矩阵的反对角线(次对角线,次对角线)求和元素.

所以,如果我有一个矩阵m:

m <- matrix(c(2, 3, 1, 4, 2, 5, 1, 3, 7), 3)
m

     [,1] [,2] [,3]
[1,]    2    4    1
[2,]    3    2    3
[3,]    1    5    7
Run Code Online (Sandbox Code Playgroud)

我正在寻找总和m[3, 1] + m[2, 2] + m[1, 3],即1 + 2 + 1

我无法弄清楚如何设置迭代.据我所知,没有这个功能(就像diag()其他对角线一样).

r sum matrix diagonal

14
推荐指数
2
解决办法
4629
查看次数

提取大矩阵的非对角切片

我有一个很大的nxn矩阵,想要拍摄不同大小的非对角切片.例如:

1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
Run Code Online (Sandbox Code Playgroud)

我想要一个R函数,当给定矩阵和"对角线切片的宽度"时,它将返回仅具有这些值的nxn矩阵.所以对于上面的矩阵,比方说3,我得到:

1 x x x x x
1 2 x x x x
1 2 3 x x x
x 2 3 4 x x
x x 3 4 5 x
x x x 4 5 6
Run Code Online (Sandbox Code Playgroud)

目前我正在使用(原谅我)一个非常慢的for循环:

getDiags<-function(ndiags, cormat){
  resmat=matrix(ncol=ncol(cormat),nrow=nrow(cormat))
  dimnames(resmat)<-dimnames(cormat)
  for(j …
Run Code Online (Sandbox Code Playgroud)

r matrix slice diagonal

13
推荐指数
1
解决办法
6007
查看次数

使用NumPy查找所有n维线和对角线

使用NumPy,我想生成一个长度为k的n维数组的所有行和对角线的列表.


以长度为3的以下三维数组为例.

array([[[ 0,  1,  2],
        [ 3,  4,  5],
        [ 6,  7,  8]],

       [[ 9, 10, 11],
        [12, 13, 14],
        [15, 16, 17]],

       [[18, 19, 20],
        [21, 22, 23],
        [24, 25, 26]]])
Run Code Online (Sandbox Code Playgroud)

对于这种情况,我想获得以下所有类型的序列.对于任何给定的情况,我想获得每种类型的所有可能序列.对于每种情况,在下面的括号中给出了所需序列的实例.

  • 1D线
    • x轴(0, 1, 2)
    • y轴(0, 3, 6)
    • z轴(0, 9, 18)
  • 2D对角线
    • x/y轴(0, 4, 8,2, 4, 6)
    • x/z轴(0, 10, 20,2, 10, 18)
    • y/z轴(0, 12, 24,6, 12, 18)
  • 3D对角线
    • x/y/z轴( …

python arrays numpy n-dimensional diagonal

13
推荐指数
1
解决办法
720
查看次数

创建单元格的对角线边框

我想知道是否有可能使用css或jquery创建一个带有对角线边界线的表,如下所示:

在此输入图像描述

任何想法将不胜感激.

css jquery cell css-tables diagonal

10
推荐指数
1
解决办法
3782
查看次数

如何总结数据框的对角线

假设我有这个数据框:

     1   2   3   4      
100  8   12  5   14 
99   1   6   4   3   
98   2   5   4   11  
97   5   3   7   2   
Run Code Online (Sandbox Code Playgroud)

在上面的数据框中,这些值表示观察的观察次数(100, 1), (99, 1)等.

在我的上下文中,对角线具有相同的含义:

     1   2   3   4
100  A   B   C   D 
99   B   C   D   E  
98   C   D   E   F 
97   D   E   F   G
Run Code Online (Sandbox Code Playgroud)

如何在第一个数据框中对角线(即,相似字母的数量之和)求和?

这会产生:

group  sum
A      8
B      13
C      13
D      28
E      10
F      18
G      2
Run Code Online (Sandbox Code Playgroud)

例如,D5+5+4+14

r sum dataframe diagonal

10
推荐指数
4
解决办法
1839
查看次数