Python - 刪除初始 K 列元素


介紹

本文的重點是研究使用 Python 刪除以 K 開頭的第一列元素的過程。因此,讓我們來檢查一下具體細節。

定義

刪除初始 K 列元素指的是從給定資料集或陣列的每一列中丟棄前 K 個元素的過程。在資料預處理中,這是一種常用的技術,用於刪除每列開頭處的多餘或不重要的資訊。在多種情況下,使用此過程可能很有利。例如,刪除 CSV 檔案中的標題行或刪除資料集中開頭的空值。

演算法

  • 步驟 1:定義矩陣。

  • 步驟 2:定義 K 的值。

  • 步驟 3:可以使用列表推導式建立一個新矩陣,從每一行的開頭排除前 K 個元素。

  • 步驟 4:應列印原始矩陣和新矩陣。

  • 步驟 5:結束

方法

  • 方法 1 - 使用 pandas

  • 方法 2 - 使用列表推導式

方法 1 - 使用 pandas

示例

import pandas as pd

# Define the matrix
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

# Define the value of K
K = 2

# Convert the matrix to a pandas DataFrame
df = pd.DataFrame(matrix)

# Apply a lambda function to each row of the DataFrame to remove the first K elements
new_df = df.apply(lambda x: x[K:], axis=1)

# Convert the new DataFrame back to a list of lists
new_matrix = new_df.values.tolist()

# Print the original matrix and the new matrix
print("Original matrix:")
print(matrix)
print("New matrix:")
print(new_matrix)

輸出

Original matrix:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
New matrix:
[[3, 4], [7, 8], [11, 12]]

首先,匯入 pandas 庫,然後定義給定的矩陣,該矩陣由巢狀列表組成。還指示了 K 的值,它表示要從每列開頭刪除的元素數量。之後,使用 pd.DataFrame() 函式將矩陣轉換為 pandas DataFrame。使用獲得的 DataFrame 可以更方便地進行資料操作。

然後,使用 DataFrame 的 apply() 函式將 lambda 函式應用於每一行。lambda 函式,即 lambda x: x[K:],透過從索引 K 開始切片來刪除每行元素的前 K 個元素。透過設定 axis=1 引數,可以確保按行應用操作。一個名為 new_df 的轉換後的 DataFrame 現在包含結果資料。

透過應用 values.tolist() 函式,從 DataFrame new_df 中建立獲得的列表列表,並在刪除每行前 K 個元素後建立。隨後,可以根據需要對資料進行進一步處理。透過此步驟,可以獲得轉換後的資料所需的巢狀列表格式。

最後,我們輸出初始矩陣和修改後的矩陣以進行結果比較。要顯示初始矩陣,請使用 print(matrix) 命令,對於更新後的矩陣,請應用 print(new_matrix)。透過這種方法可以觀察到從每行刪除初始 K 個元素。

結果顯示依次顯示了初始矩陣和更新後的矩陣。可以注意到,原始矩陣中每行的前兩個條目已被刪除。結果是新轉換後的矩陣。

總的來說,此程式碼中提供的實現提供了一種使用 pandas 庫刪除列首 K 個元素的不同方法。使用此工具為使用者提供了管理表格資訊的便捷且靈活的功能。

方法 2 - 使用列表推導式

示例

# Define the matrix
matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

# Define the value of K
K = 2

# Use a list comprehension to create a new matrix with the first K elements removed from each row
new_matrix = [row[K:] for row in matrix]

# Print the original matrix and the new matrix
print("Original matrix:")
print(matrix)
print("New matrix:")
print(new_matrix)

輸出

Original matrix:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
New matrix:
[[3, 4], [7, 8], [11, 12]]

第一步是將提供的矩陣定義為另一個列表中的列表。透過在列表推導式中從索引 K 開始切片每一行,可以有效地刪除初始 K 個元素。結果是一個修改後的矩陣,其中目標元素已被刪除。

列印原始矩陣和修改後的矩陣以進行結果比較。列印“matrix”語句顯示矩陣的原始狀態,而列印“new_matrix”顯示修改後的矩陣,其中刪除了 K 個初始元素。

結果輸出包括初始矩陣,隨後是更新後的矩陣。仔細檢查後可以發現,源矩陣中每行的前兩個元件已被排除在外。結果是新轉換後的矩陣。

總之,此程式碼中的列表推導式提供了一種直接的方法,用於從矩陣的所有行中刪除前 K 個元素。當它以有效的方式遍歷矩陣的每一行時,透過排除前 K 個元素來建立一個新行。使用此方法避免了巢狀迭代的必要性,並提供了一個簡潔的解決方案。透過其簡單易讀的方法可以實現所需的轉換。

結論

如前所述,在 Python 中檢查了兩種不同的技術來刪除初始 K 列元素。使用了兩種不同的方法,一種使用列表推導式,另一種依賴於 pandas 庫。這兩種方法都能有效地實現所需的結果,即從每一行或列中刪除指定數量的元素。

第一種方法適用於需要簡單且可移植的解決方案而無需任何外部依賴項的情況,而 pandas 庫提供了額外的數

這些方法的選擇取決於您專案的具體需求。對於那些使用緊湊矩陣並偏愛簡潔方法的人。考慮使用列表推導式方法可能是一個可行的選擇。如果您正在處理大量資料集或需要複雜的資料分析功能。透過使用 pandas 方法,可以提高靈活性和效率。

更新於: 2023年10月9日

63 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.