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 という結果になっています。この手法はデータクレンジングや重複チェックなど、さまざまな場面で応用できる便利なテクニックです。
-
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] # ドライ
-
Pythonで円柱の周囲長を求めるプログラムの書き方
この記事では、以下の問題をPythonを使って解く方法を解説します。 問題の定義 問題: 直径と高さを入力として受け取り、円柱の周囲長を求める。 ここでいう「周囲長」とは、円柱を横から見たときに現れる長方形の外周のことです。つまり、円柱の側面を展開すると長方形になり、その縦が円柱の高さ、横が円の直径(円周ではありません)に相当します。 したがって、周囲長は次の式で表せます。 周囲長 = 2 × ( 高さ h + 直径 d ) d:円柱の直径 h:円柱の高さ 実装例 それでは、実際のコードを見てみましょう。 # 円柱の周囲長を計算する関数 def perimeter(diameter, he