iT邦幫忙

2023 iThome 鐵人賽

DAY 2
1

如同我之前的文章 (“成為數據分析師前我希望可以早一點知道的6件事”),我決定趁這次的機會來複習一下數據結構和數據類型的基礎.以下的都會以Python的環境為基礎.

數據結構:Arrays, Dictionaries, Lists, Tuples & Dataframes

1.Arrays (陣列)
陣列是一種線性的資料結構,它收集了相同資料類型的元素並將它們存儲在相鄰的記憶體位置中。我讀過的一個很好的比喻是把陣列想像成冰塊托盤,它們可以符合任何物件或形狀(如整數、字符串等),並且可以有多於1行和列。
元素 - 存儲在陣列中的每個項目。一個項目可以存儲多個相同資料類型的值(例如字符串、整數等)。 索引 - 陣列中每個元素的位置都有一個數值編號,用於識別該位置中存儲的元素。

Array index--> array_name

  • [row_#][column_#]
    

1-Dmensional Arrays #維陣列就像是一行冰塊插槽

  • array_1 [row_num]
    

2-Dimensional Arrays 二維陣列則是多行多列的冰塊插槽

  • array_2 [row_num]  [col_num]
    

3-Dimensional Arrays 三維陣列則是多個冰塊托盤,每個托盤都有多行多列的冰塊插槽

  • array_1 [row_num]. [col_num][tray1]
    

在Python中,陣列是一種特殊類型的資料結構,可以使用索引來訪問,因此元素的順序是保留的。在Python中有6種重要的陣列類型:list、tuple、str、bytes、bytearray和array.array(用於array module有統一資料類型的元素的陣列的Python模塊)。

*例如:

  • from array import array
    
  • 陣列1 = array("i", [1, 2, 3, 4]) # 整數
    
  • 陣列2 = array("d", [1.2, 2.5, 3.6, 4.7]) # 浮點數
    

我將在下面更詳細地闡述list和tuple,因為它們在數據ETL過程中最常用。

陣列的用途

  • 以較多的記憶體儲存大數據集:有1維、2維、3維3種形式,可以作為元素的集合儲存多個值
  • 使用陣列算法對數據集進行排序(如冒泡排序、選擇排序、合併排序)
  • 堆疊和佇列: 陣列被用作實現堆疊和佇列的底層數據結構(後進先出原則;將項目推入堆疊並從堆疊中彈出項目)

2. Dictionary(字典)
字典類似於陣列,但你通過其key(標題)和value(項目)來調用每個元素。其結構如下:
例如:

  • dict = {'key1': 'value1', 'value2', 'value3', 'key2': 'value1', 'value2', 'value3', 'value4'}
    

值得注意的是,字典內的鍵必須是唯一的,並且它們不保留項目的順序。
可以如何使用字典?
將一組鍵映射到其相應的值(獨特的信息對)之間。

3. List(列表)

列表是Python中的一種數據類型,允許你一次性存儲多個值在一個變數中。它們也更占用內存,因為它們設計成易於添加和刪除。重要的是,創建列表時需要使用方括號[]。
例如

  • list = ['蘋果', '橙子', '香蕉']
    

也可以通過索引調用列表中的值。

可以如何使用列表?
將標準列表用於數據過濾的標準。 *例如:

  • df.loc[df['col1'].isin(list)]
    
  • 用於存儲不同數據類型的動態組合值
    例如:
  • list = ['蘋果', '橙子', 1, 2, 3]
    
  • 你可以將值添加到列表中(大小不固定)
    例如:
  • list.append(4) --> list = ['蘋果', '橙子', 1, 2, 3, 4]
    

4. Tuple(元組)
元組是一種非動態(固定大小)的數據結構,可以保存混合數據類型,並在創建後無法更改。在創建元組時使用括號()。

可以如何使用元組?
保護數據免於被更改的寫保護功能。
例如:

  • list_tuple = ('Sam', 'Peter', 'Sandy')
    
  • 迭代速度比列表快,因此如果你有不需要更改的標準,你可能希望使用元組來提高速度
  • 可用於存儲字典的鍵,因為你不能使用列表來執行此操作。你可以通過索引調用元組中的值

5. Dataframe (數據框)
資料框通常是指獨特的 Pandas 資料框架。它是一種最簡單的 2-D 數據結構,將數據轉換成列和行,就像 Excel 中的數據一樣,並附有對應的索引標籤。將其想像成電子表格。

可以如何使用資料框?

  • 最簡單的分析大數據的方法之一,適用於 Python
  • 幫助你將數據視覺化為表格,並找出需要進行清理、修改、過濾和刪除的混亂數據集
  • 你可以基於列鍵(按唯一日期或類別)對數據進行分組/聚合,就像樞紐分析表一樣
  • 強大的 Pandas 模組可以處理時間序列數據

~~Part 2 我將繼續討論不同的Data types(數據類型)。

Reference:
https://www.simplilearn.com/tutorials/data-structure-tutorial/arrays-in-data-structure#:~:text=An%20array%20is%20a%20linear,the%20size%20of%20the%20array
https://python.plainenglish.io/arrays-vs-list-vs-dictionaries-47058fa19d4e
https://stackabuse.com/dictionaries-vs-arrays-in-python-deep-dive/


上一篇
成為數據分析師前我希望可以早一點知道的6件事
下一篇
數據結構和數據類型的基礎 (2) - Data types
系列文
資料分析的硬體以及軟體學習以及成長心得30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言