【數據科學】一文徹底理清數據、數據類型、數據結構的概念

一、什么是數據?

? ? ? ?入門數據學科,首先第一步要認識數據什么,可能大多數人都無法對數據做一個準確的定義,在我們印象中,提到數據首先頭腦浮現的是數據表格,是一堆堆數字,那么數據就是數字嗎?顯然二者不能完全劃等號,我們來看一下度娘對數據定義的解讀。

? ? ? ?數據(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、機器學習、深度學習、人工智能系列基礎知識與應用案例。致力于只做原創,以最簡單的方式理解和學習,關注我一起交流成長。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/536804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/536804.shtml
英文地址,請注明出處:http://en.pswp.cn/news/536804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SpringBoot 2.0 中默認 HikariCP 數據庫連接池原理解析

作為后臺服務開發,在日常工作中我們天天都在跟數據庫打交道,一直在進行各種CRUD操作,都會使用到數據庫連接池。按照發展歷程,業界知名的數據庫連接池有以下幾種:c3p0、DBCP、Tomcat JDBC Connection Pool、Druid 等&am…

阿里云服務器記錄

阿里云服務器記錄 CentOS 8.4 64位 SCC版 CentOS 7.9 64位 SCC版 CentOS 7.9 64位 CentOS 7.9 64位 UEFI版 Alibaba Cloud Linux Anolis OS CentOS Windows Server Ubuntu Debian Fedora OpenSUSE Rocky Linux CentOS Stream AlmaLinux 阿里云服務器有個scc版,這個…

Flask+Mysql項目docker-compose部署(Pythondocker-compose詳細步驟)

一、前言 環境: Linux、docker、docker-compose、python(Flask)、Mysql 簡介: 簡單使用Flask框架寫的查詢Mysql數據接口,使用docker部署,shell腳本啟動 優勢: 采用docker方式部署更加便于維護,更加簡單快…

如何在Go中使用模板

引言 您是否需要以格式良好的輸出、文本報告或HTML頁面呈現一些數據?你可以使用Go模板來做到這一點。任何Go程序都可以使用text/template或html/template包(兩者都包含在Go標準庫中)來整齊地顯示數據。 這兩個包都允許你編寫文本模板并將數據傳遞給它們,以按你喜歡的格式呈…

“C語言“——scanf()、getchar() 、putchar()、之間的關系

scanf函數說明 scanf函數是對來自于標準輸入流的輸入數據作格式轉換,并將轉換結果保存至format后面的實參所指向的對象。 而const char*format 指向的字符串為格式控制字符串,它指定了可輸入的字符串以及賦值時轉換方法。 簡單來說給一個打印格式(輸入…

【并發編程篇】源碼分析,手動創建線程池

文章目錄 🛸前言🌹Executors的三大方法 🍔簡述線程池🎆手動創建線程池?源碼分析?代碼實現,手動創建線程池🎈CallerRunsPolicy()🎈AbortPolicy()🎈DiscardPolicy()🎈Dis…

LNPMariadb數據庫分離|web服務器集群

LNP&Mariadb數據庫分離|web服務器集群 網站架構演變單機版LNMP獨立數據庫服務器web服務器集群與Session保持 LNP與數據庫分離1. 準備一臺獨立的服務器,安裝數據庫軟件包2. 將之前的LNMP網站中的數據庫遷移到新的數據庫服務器3. 修改wordpress網站配置…

2023.12.24 關于 Redis 中 String 類型內部編碼 及 應用場景

目錄 String 類型內部編碼 3 種內部編碼方式 String 類型應用場景 Cache 緩存 鍵名命名規則 計數(Counter) 共享會話(Session ) 手機驗證碼 總結 String 類型內部編碼 3 種內部編碼方式 int:用來表示 64 位 —…

vue3菜單權限管理實現

前提 你的菜單是根據路由動態生成的,具體可以參考這篇博客對el-menu組件進行遞歸封裝(根據路由配置動態生成) 描述 首先將路由分為常量路由constantRoute(所有用戶都有的路由)和異步路由asyncRoute(需要動…

Gradle 插件

自定義Gradle插件 - 簡書

小天使的小難題:新生兒疝氣的關注與溫馨呵護

引言: 新生兒疝氣是一種在出生后可能出現的常見情況,雖然通常不會造成長期影響,但對于家長而言,了解如何正確應對新生兒疝氣是至關重要的。本文將深入探討新生兒疝氣的原因、癥狀,以及家長在面對這一問題時應該采取的…

1224. 交換瓶子(藍橋杯/圖論)

題目: 1224. 交換瓶子 - AcWing題庫 輸入樣例1: 5 3 1 2 5 4輸出樣例1: 3輸入樣例2: 5 5 4 3 2 1輸出樣例2: 2 思路:圖論 1.將對應的位置與當前的瓶子序列相連形成環。 2.最少交換次數能形成的最多…

Vue中的事件委托(事件代理)使用方法介紹

事件委托(事件代理) 將原本需要綁定在子元素上的事件監聽器委托在父元素上,讓父元素充當事件監聽的職務。 事件委托是一種利用事件冒泡的特性,在父節點上響應事件,而不是在子節點上響應事件的技術。它能夠改善性能&a…

如何理解JDK、JRE、JVM區別與聯系

摘要:JDK是 Java 語言的軟件開發工具包(SDK)。在JDK的安裝目錄下有一個jre目錄,里面有兩個文件夾bin和lib,在這里可以認為bin里的就是jvm,lib中則是jvm工作所需要的類庫,而jvm和 lib合起來就稱為jre。 一、JDK JDK(Ja…

【【迭代16次的CORDIC算法-verilog實現】】

迭代16次的CORDIC算法-verilog實現 -32位迭代16次verilog代碼實現 CORDIC.v module cordic32#(parameter DATA_WIDTH 8d32 , // we set data widthparameter PIPELINE 5d16 // Optimize waveform)(input …

第十四章Java博客

lambda就是數學中的“λ”的讀音,lambda表達式是基于λ演算而得名的,因為lambda抽象(lambda abstraction)表示一個匿名的函數,于是開發語言也將lambda表達式用來表示匿名函數,也就是沒有函數名字的函數。C#…

maven管理工具使用package打包的時候無法將lib文件夾下的第三方jar包打入,上線打jar包后運行異常問題

問題描述&#xff1a; 調用第三方接口的時候通過手動引入了第三方的兩個jar包到我本項目的lib文件夾下&#xff0c;并在pom文件添加入下配置&#xff1a; <dependency><groupId>cn.xxxx.xxxx.core</groupId><artifactId>xxxx-core</artifactId>…

Spring Boot 中實現跨域的幾種方式

前言 在現代Web應用中&#xff0c;由于安全性和隱私的考慮&#xff0c;瀏覽器限制了從一個域向另一個域發起的跨域HTTP請求。解決這個問題的一種常見方式是實現跨域資源共享&#xff08;CORS&#xff09;。Spring Boot提供了多種方式來處理跨域請求&#xff0c;本文將介紹其中的…

C語言字符串處理提取時間(ffmpeg返回的時間字符串)

【1】需求 需求&#xff1a;有一個 “00:01:33.90” 這樣格式的時間字符串&#xff0c;需要將這個字符串的時間值提取打印出來&#xff08;提取時、分、秒、毫秒&#xff09;。 這個時間字符串從哪里來的&#xff1f; 是ffmpeg返回的時間&#xff0c;也就是視頻的總時間。 下…

vs快捷鍵

ctrlMo 折疊代碼塊 ctrlML 打開代碼塊