一、什么是數據?
? ? ? ?入門數據學科,首先第一步要認識數據什么,可能大多數人都無法對數據做一個準確的定義,在我們印象中,提到數據首先頭腦浮現的是數據表格,是一堆堆數字,那么數據就是數字嗎?顯然二者不能完全劃等號,我們來看一下度娘對數據定義的解讀。
? ? ? ?數據(data)是事實或觀察的結果,是對客觀事物的邏輯歸納,是用于表示客觀事物的未經加工的的原始素材。
? ? ? 數據是信息的表現形式和載體,可以是文字、符號、數字、語音、圖像、視頻等。數據和信息是不可分離的,數據是信息的表達,信息是數據的內涵,數據本身沒有意義,數據只有對實體行為產生影響時才成為信息。
? ? ? ?數據可以是連續的值,比如聲音、圖像,稱為模擬數據(連續數據)。也可以是離散的,如符號、文字,稱為數字數據(離散數據)。
? ? ? ?在計算機系統中,數據以二進制信息單元0、1的形式表示。
? ? ? ?通過以上解讀,我們可以發現,我們印象中的數字只是數據的一種形式,廣義的數據包含的內容很多,文字,語音,圖像,視頻都是數據定義的范疇,因為無論哪種形式,它們到計算機里面都是0和1,只是編碼的形式有差別,這樣說來,數據挖據,計算機視覺,自然語言處理等都是數據科學的范疇。
二、什么是數據類型?
????? ? 在學任何一門編程語言的開始,我們都要學習相關的數據類型,那么數據類型究竟又是如何定義的呢?
? ? ? ? 數據類型在數據結構中的定義是一組性質相同的值的集合以及定義在這個值集合上的一組操作的總稱。
? ? ? ?變量是用來存儲值的所在處,它們有名字和數據類型。變量的數據類型決定了如何將代表這些值的位存儲到計算機的內存中。在聲明變量時也可指定它的數據類型,所有變量都具有數據類型,以決定能夠存儲哪種數據。
? ? ? ?在學python語言時,有一個問題一直困擾著我,列表元組這些到底是數據類型還是數據結構呢?后來讀了一些博客,發現數據類型主要包括原子類型和結構類型:
? ? ? ??原子類型是指一種值的集合以及定義在值上的一組操作,比如在python中,有整數型(int),浮點數型(float),布爾型(bool),字符串(str)等,這是我們印象中的常規表現形式;?
? ? ? ?結構類型(復合類型)是指一種數據結構以及定義在結構上的一種操作,是數據類型的另一種表現形式,是通過原子類型封裝的更復雜的數據類型,比如在面向對象的編程語言python中,列表(List),字典(Dict),元組(Tuple)等都是這種類型。
? ? ? ? 因此,嚴格意義上來講,列表元組這些應該是python內置的復合數據類型。
三、什么是數據結構?
??? ? ?從我的困惑可以看出,數據類型和數據結構之間存在聯系但也有一定的區別。
? ? ? ?數據結構是指相互之間存在著一種或多種關系的數據元素的集合和該集合中數據元素之間的關系組成 。包括邏輯結構和物理結構。
? ? ? ?邏輯結構描述數據之間的相互關系,按照邏輯結構劃分,主要分為線性結構和非線性結構,線性結構數據元素是一對一的關系,非線性結構數據元素是一對多和多對多的關系。
? ? ? 常見的線性結構有數組(Array)、鏈表(Linked List)、棧(Stack)、隊列(Queue),常見的非線性結構有樹(Tree),堆(Heap),圖(Graph),散列表(Hash)。
? ? ? 物理結構描述數據具體在內存中的存儲(如:順序結構、鏈式結構、索引結構、哈希結構)等。
? ? ? ?最后需要指出的是,數據類型和數據結構是基于某種編程語言的,不同的計算機語言(C、python、C#等)它們的數據類型和數據結構略有不同,但本質差異不大。
四、小結
??????入門數據科學,第一步就是認識數據,了解數據類型和數據結構,數據類型和數據結構是依賴于編程語言的,對數據類型和數據結構有充分的認識,對以后數據分析和挖掘非常有幫助。
本期內容就到這里,我們下期再見!需要數據集和源碼的小伙伴可以關注私信作者或者底部公眾號添加作者微信!
作者簡介:
讀研期間發表6篇SCI數據挖掘相關論文,現在某研究院從事數據算法相關科研工作,結合自身科研實踐經歷不定期分享關于Python、機器學習、深度學習、人工智能系列基礎知識與應用案例。致力于只做原創,以最簡單的方式理解和學習,關注我一起交流成長。