Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで行列の各行の冗長率を求めるプログラム

行列(リストのリスト)の各行における冗長率を求めたい場合、シンプルな反復処理と「append」メソッドを組み合わせることで簡単に実現できます。

冗長率とは

冗長率とは、行内に重複する要素がどれだけ含まれているかを表す指標です。0に近いほどすべての要素がユニークであり、1に近いほど多くの重複が存在することを意味します。具体的には「1 −(ユニークな要素数 ÷ 全要素数)」という式で計算されます。

サンプルコード

以下に実装例を示します。

my_list = [[91, 52, 12, 29, 33], [54, 54, 54, 54, 54], [11, 22, 33, 59, 95]]

print("The list is :")
print(my_list)

my_result = []
for sub in my_list:
    my_result.append(1 - len(set(sub)) / len(sub))

print("The result is :")
print(my_result)

出力結果

The list is :
[[91, 52, 12, 29, 33], [54, 54, 54, 54, 54], [11, 22, 33, 59, 95]]
The result is :
[0, 1, 0]

コードの解説

  • リストの中に複数のリストを格納した多次元リストを定義し、コンソールに表示します。

  • 計算結果を格納するための空のリストを作成します。

  • 元のリストを反復処理し、各行に対して set() を使ってユニークな要素数を取得します。その後、「1 −(ユニークな要素数 ÷ 行の全要素数)」を計算して冗長率を求め、append メソッドで結果リストに追加していきます。

  • 最終的な結果がコンソールに出力されます。

この例では、最初の行はすべての要素が異なるため冗長率は 0、2番目の行はすべて同じ値(54)で構成されているため冗長率は 1、3番目の行にも重複がないため 0 という結果になっています。この手法はデータクレンジングや重複チェックなど、さまざまな場面で応用できる便利なテクニックです。

  1. Pythonで行列の転置を求めるプログラム

    この記事では、与えられた問題に対する解法とアプローチについて詳しく解説します。 問題文 ある行列が与えられたとき、その転置を同じ行列に格納し、結果を表示する必要があります。 行列の転置とは、行を列に、列を行に入れ替えたものです。言い換えれば、行列Aの転置は、要素A[i][j]をA[j][i]と入れ替えることで得られます。 実装例 N = 4 def transpose(A): for i in range(N): for j in range(i+1, N): A[i][j], A[j][i] = A[j][i], A[i][j] # ドライ

  2. Pythonで円柱の周囲長を求めるプログラムの書き方

    この記事では、以下の問題をPythonを使って解く方法を解説します。 問題の定義 問題: 直径と高さを入力として受け取り、円柱の周囲長を求める。 ここでいう「周囲長」とは、円柱を横から見たときに現れる長方形の外周のことです。つまり、円柱の側面を展開すると長方形になり、その縦が円柱の高さ、横が円の直径(円周ではありません)に相当します。 したがって、周囲長は次の式で表せます。 周囲長 = 2 × ( 高さ h + 直径 d ) d:円柱の直径 h:円柱の高さ 実装例 それでは、実際のコードを見てみましょう。 # 円柱の周囲長を計算する関数 def perimeter(diameter, he