python - 遍历Python中的上三角矩阵
问题描述
我正在使用 Python 并且我有一个 XxY 矩阵,其中 X=Y 并且我想以特定方式迭代上三角矩阵,以便它开始并继续等等等等,直到最后一行和最后一列。因此,我尝试创建一个双循环,逐列循环,在该循环中,我创建了另一个循环,循环遍历行,总是添加一行。但是,我陷入了定义如何为第二个循环中的每一列添加下一行的问题。这是我到目前为止得到的(为简单起见,我刚刚创建了一个零数组):
import pandas as pd
import numpy as np
# number of columns
X = 10
# number or rows
Y = X
U = np.zeros((Y,X))
for j in range(X):
for z in range():
我最初的想法是创建一个 Yx1 数组y = np.asarray(list(range(0,Y)))
并将其用于第二个循环,但我不明白如何实现它。有人能帮帮我吗?是否有更简单的方法来定义这样的迭代?
解决方案
使用 Numpy,您可以使用以下方法获取上三角矩阵的triu_indices_from
索引并索引到数组中:
import numpy as np
a = np.arange(16).reshape([4, 4])
print(a)
#[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]
# [12 13 14 15]]
indices = np.triu_indices_from(a)
upper = a[indices]
print(upper)
# [ 0 1 2 3 5 6 7 10 11 15]
推荐阅读
- python - 我似乎找不到将滚动条添加到我的 tkinter 元素周期表的方法
- python - 机器人阅读其他用户增加了反应
- ruby-on-rails - 活动管理员表单中的 has_one 关系
- javascript - 从存储中按降序显示图像(或者我是否需要使用 Firestore)?
- c# - C# 中的正则表达式无法正常工作以进行数字检查
- javascript - 测验应用程序上的 HTML/Javascript 速度慢/崩溃
- ajax - 如何在 html 选择选项中获得 ajax 响应
- mongodb - 使用 MongoDB 投影
- sql - 如何将用户定义的函数应用于 BigQuery SQL 中的多个列?
- javascript - 稍后在代码中访问时数组为空