如同我之前的文章 (“成為數據分析師前我希望可以早一點知道的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過程中最常用。
陣列的用途
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 中的數據一樣,並附有對應的索引標籤。將其想像成電子表格。
可以如何使用資料框?
~~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/