PYTHON学习笔记之(一)2020.08
PYTHON學習筆記之(一)2020.08
Python基礎
數據類型
常見的列表、字典,以及元組、集合。
1 列表 list
- 1.1 列表轉換字符串
[‘王一’, ‘李二’, ‘張三’]
王一 - 李二 - 張三
- 1.2 字符串轉列表
[‘a’, ‘good’, ‘day’]
2 字典 dictionary
-2.1 字典錄入與輸出
a good day
dicA = {'a': 'a', 'b': 'good', 'c': 'day'} for i in dicA:print(i + ': ' + dicA[i])a: a
b: good
c: day
3 元組 tuple
3.1 元組 元組數據不可以修改
(‘b’, ‘c’)
4 集合 set
4.1 集合 集合會自動去重復
{‘a’, ‘b’}
運算符
運算符 + - * / > < >= <= == and or not,不一一舉例
分支循環
1.if … else …
if 表達式:
code
else:
code
2.for i in 循環變量:
code
3.while 表達式:
code
異常處理
try:
code
except:
code
函數
def funName(參數):
code
常見內部函數:
str、int、len、replace、strip、 split
庫的引用
import 庫名
from 庫名 import 功能/*
有時候引用的庫沒有需要安裝,以下方式:
1.pip install 庫名(前提條件安裝了pip工具)
cmd 中 pip install requests
2.pycharm安裝
File -> Settings
然后點擊安裝install package即可。
試試爬一個網頁
import requests res = requests.get('https://www.baidu.com').text print(res)爬蟲基礎
網頁結構
1 查看網頁源代碼
F12鍵
主要使用選擇以及元素選項
右鍵菜單
查看網頁源代碼
有時通過F12可以看到的內容,而通過右鍵菜單是看不到的,因為有些網頁是通過動態渲染出來的。
F12看到的代碼是經過渲染的。
2 網頁結構
html
body
h:h1、h2、h3標題
p:段落
a:鏈接
table:表格
li:序號
img:圖片
div:區塊
class與id
獲取網頁源代碼
import requests res = requests.get('https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=02003390_21_hao_pg&wd=疫情').text print(res)不可行,需要模擬瀏覽器發送訪問請求。
可以通過requests.get()中的headers參數,模擬瀏覽器訪問請求。
headers提供網站訪問者的信息,User-Agent表示用戶代理,是通過什么瀏覽器訪問。
headers可以通過在瀏覽器中輸入about:version查看,這里用的谷歌瀏覽器
修改后的代碼如下
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/65.0.3325.181 Safari/537.36'} res = requests.get('https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=02003390_21_hao_pg&wd=疫情', headers=headers).text print(res)執行后便可以獲取源代碼信息。
分析網頁源代碼
1 F12鍵
開發者工具中“選擇”選項,選擇一個元素,可以在Elements中看到該標題的內容。
2 利用右鍵菜單
查看網頁源代碼
3 利用Python輸出框
在獲取到的源代碼中查詢
正則表達式
1 正則表達式findall()函數
import re content = 'hello 123 world' result = re.findall('\d', content) print(result)[‘1’, ‘2’, ‘3’]
正則表達式常用功能
| \d | 一個數字 |
| \w | 一個字母、數字、下劃線 |
| \s | 一個空白符、換行符、制表符、空格 |
| \S | 匹配一個非空白符 |
| \n | 匹配一個換行符 |
| \t | 匹配一個制表符 |
| . | 匹配一個任意字符,除換行符 |
| * | 匹配0個或多個表達式 |
| + | 匹配一個或多個表達式 |
| ? | 非貪婪限定符,常與.和*配合使用 |
| () | 匹配括號內的表達式,也表示一個組 |
2 正則表達式非貪婪匹配
2.1 (.?)
其格式如下:
文本A(.?)文本B
文本A百度新聞文本B
[‘百度新聞’]
2.2 匹配.?
reg = '<h 3 class=“c-title”>.?>(.?)’
.?用于填充我們不關心的內容,其中是一些變化的不固定的內容,一直匹配到下一個“>”,并取得(.*?)這部分內容。
2.3考慮換行的修飾符re.S
re.findall(規則, 文本, re.S)
[‘百\n度新\n聞’]
2.4 re.sub函數
re.sub(’<.*?>’,’’, 待替換的字符串)
2.5 中括號[]用法
為了使. * + ?不再有特殊含義
re.sub(’[*]’, ‘’ ,待替換字符串)
數據提取小CASE
1.獲取網頁信息
import requestsheaders = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/65.0.3325.181 Safari/537.36'} url = 'https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word=阿里巴巴' res = requests.get(url, headers=headers).text print(res)2.提取新聞來源和日期
使用F12查看新聞來源標簽
使用如下正則表達式
[‘AI財經社’, ‘鹿科技’, ‘網易新聞’, ‘騰訊網’, ‘網易新聞’, ‘新浪科技’, ‘騰訊網’, ‘北京日報客戶端’, ‘四川經濟網’, ‘新浪財經’]
reg = '<span class="c-color-gray2 .*?>(.*?)</span>'[‘1小時前’, ‘2020年08月22日 14:49’, ‘2020年08月22日 21:56’, ‘2020年08月22日 00:00’, ‘2020年08月22日 17:41’, ‘2020年08月22日 15:35’, ‘2020年08月22日 00:00’, ‘2020年08月20日 20:17’, ‘2020年08月22日 16:06’, ‘2020年08月20日 20:57’]
3 提取網址和標題
[‘張勇彭蕾退出螞蟻集團董事,新增包括阿里巴巴CTO等五名董事’, ‘阿里巴巴發布新財報,年度活躍用戶量達7.42億’, ‘阿里巴巴北京總部,公司太霸氣了,帶你先睹為快!’, ‘阿里云公布一季度財報 連續四季度強勁增長’, ‘阿里巴巴:長期主義的階段勝利’, ‘信心基石阿里巴巴’, ‘阿里巴巴發布新一季財報,淘寶直播成交額翻倍增長’, ‘阿里巴巴:停止UCWeb及其他創新業務在印度服務’, ‘鶴壁阿里巴巴托管公司’, ‘剛剛阿里發布財報,這一次“貓狗大戰”京東贏了?’]
regLink = '<h3 class="news-title.*?><a href="(.*?)"' articleLink = re.findall(regLink, res, re.S)[‘https://baijiahao.baidu.com/s?id=1675786144786316914&wfr=spider&for=pc’, ‘https://www.lukeji.com.cn/news/xls/21606.html’, ‘https://3g.163.com/news/article/FKLRM0640515D607.html’, ‘https://new.qq.com/omn/20200822/20200822A026GS00.html’, ‘http://dy.163.com/v2/article/detail/FKLD2R1H05199O51.html’, ‘https://new.qq.com/omn/20200822/20200822A0B5N200.html’, ‘http://tech.sina.com.cn/roll/2020-08-22/doc-iivhuipp0077223.shtml’, ‘http://www.scjjrb.com/syxw/e105511285.html’, ‘http://finance.eastmoney.com/a/202008221604220943.html’, ‘https://baijiahao.baidu.com/s?id=1675602491601591953&wfr=spider&for=pc’]
4 數據處理
有些特殊等字符不需要
去掉標題中的em標簽
[‘張勇彭蕾退出螞蟻集團董事,新增包括阿里巴巴CTO等五名董事’, ‘阿里巴巴發布新財報,年度活躍用戶量達7.42億’, ‘阿里巴巴北京總部,公司太霸氣了,帶你先睹為快!’, ‘阿里云公布一季度財報 連續四季度強勁增長’, ‘阿里巴巴:長期主義的階段勝利’, ‘信心基石阿里巴巴’, ‘阿里巴巴:停止UCWeb及其他創新業務在印度服務’, ‘鶴壁阿里巴巴托管公司’, ‘BAT最新成績單PK:阿里巴巴營收增速最快 百度掉隊’, ‘阿里巴巴發布2021財年第一財季財報’]
這樣數據準備OK
5 將它們拼接在一起
1 張勇彭蕾退出螞蟻集團董事,新增包括阿里巴巴CTO等五名董事 AI財經社 2小時前
https://baijiahao.baidu.com/s?id=1675786144786316914&wfr=spider&for=pc
2 阿里巴巴發布新財報,年度活躍用戶量達7.42億 鹿科技 2020年08月22日 14:49
https://www.lukeji.com.cn/news/xls/21606.html
3 阿里巴巴北京總部,公司太霸氣了,帶你先睹為快! 網易新聞 2020年08月22日 21:56
https://3g.163.com/news/article/FKLRM0640515D607.html
4 阿里云公布一季度財報 連續四季度強勁增長 騰訊網 2020年08月22日 00:00
https://new.qq.com/omn/20200822/20200822A026GS00.html
5 阿里巴巴:長期主義的階段勝利 網易新聞 2020年08月22日 17:41
http://dy.163.com/v2/article/detail/FKLD2R1H05199O51.html
6 信心基石阿里巴巴 騰訊網 2020年08月22日 00:00
https://new.qq.com/omn/20200822/20200822A0B5N200.html
7 阿里巴巴:停止UCWeb及其他創新業務在印度服務 新浪科技 2020年08月22日 15:35
http://tech.sina.com.cn/roll/2020-08-22/doc-iivhuipp0077223.shtml
8 鶴壁阿里巴巴托管公司 四川經濟網 2020年08月22日 16:06
http://www.scjjrb.com/syxw/e105511285.html
9 BAT最新成績單PK:阿里巴巴營收增速最快 百度掉隊 東方財富網 2020年08月22日 23:05
http://finance.eastmoney.com/a/202008221604220943.html
10 阿里巴巴發布2021財年第一財季財報 億歐網 2020年08月21日 11:03
https://baijiahao.baidu.com/s?id=1675602491601591953&wfr=spider&for=pc
6 不間斷爬取數據
while True:無限循環
time.sleep(3600):每小時一次 需要引入import time包
7 爬取多頁數據
手動選擇下一頁按鈕會發現網站后面拼接“&pn=10”
這部分可以寫的循環里面即可。
8 設置超時設置 timeout
res = requests.get(url, headers=headers, timeout=10).text #其中10是10秒。如果超過10秒就會異常
可以用try except進行異常處理
數據庫的使用
Python支持數據庫
傳統數據庫
IBM DB2
Firebird (and Interbase)
Informix
Ingres
MySQL
Oracle
PostgreSQL
SAP DB (also known as “MaxDB”)
Microsoft SQL Server
Microsoft Access
Sybase
數據倉庫
Teradata
IBM Netezza
其他數據庫
…
可以參考
Python數據庫接口及API
這里先介紹mysql數據庫。
數據庫安裝
這里安裝WampServer,是Apache Web服務器、PHP解釋器及MySQL數據庫的軟件包整合
我用的是聯想自帶的電腦管家,上圖
數據庫基礎
mysql數據庫基礎
菜鳥教程
簡介
MySQL是最流行的關系型數據庫管理系統,在WEB 應用方面 MySQL是最好的RDBMS應用軟件之一。
- 數據庫: 數據庫是一些關聯表的集合。
- 數據表: 表是數據的矩陣。在一個數據庫中的表看起來像一個簡單的電子表格。
- 列: 一列(數據元素) 包含了相同類型的數據, 例如郵政編碼的數據。
- 行:一行(=元組,或記錄)是一組相關的數據,例如一條用戶訂閱的數據。
- 冗余:存儲兩倍數據,冗余降低了性能,但提高了數據的安全性。
- 主鍵:主鍵是唯一的。一個數據表中只能包含一個主鍵。你可以使用主鍵來查詢數據。
- 外鍵:外鍵用于關聯兩個表。
- 復合鍵:復合鍵(組合鍵)將多個列作為一個索引鍵,一般用于復合索引。
- 索引:使用索引可快速訪問數據庫表中的特定信息。索引是對數據庫表中一列或多列的值進行排序的一種結構。類似于書籍的目錄。
- 參照完整性: 參照的完整性要求關系中不允許引用不存在的實體。與實體完整性是關系模型必須滿足的完整性約束條件,目的是保證數據的一致性。
MySQL 是一個關系型數據庫管理系統,由瑞典 MySQL AB 公司開發,目前屬于 Oracle 公司。MySQL 是一種關聯數據庫管理系統,關聯數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度并提高了靈活性。
- MySQL 是開源的,所以你不需要支付額外的費用。
- MySQL 支持大型的數據庫。可以處理擁有上千萬條記錄的大型數據庫。
- MySQL 使用標準的 SQL 數據語言形式。
- MySQL 可以運行于多個系統上,并且支持多種語言。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby 和 Tcl 等。
- MySQL 對PHP有很好的支持,PHP 是目前最流行的 Web 開發語言。
- MySQL 支持大型數據庫,支持 5000 萬條記錄的數據倉庫,32 位系統表文件最大可支持 4GB,64 位系統支持最大的表文件為8TB。
- MySQL 是可以定制的,采用了 GPL 協議,你可以修改源碼來開發自己的 MySQL 系統。
數據庫管理
- USE 數據庫名 :選擇要操作的Mysql數據庫,使用該命令后所有Mysql命令都只針對該數據庫。
- SHOW DATABASES: 列出 MySQL 數據庫管理系統的數據庫列表。
- SHOW TABLES:顯示指定數據庫的所有表,使用該命令前需要使用 use 命令來選擇要操作的數據庫。
- SHOW COLUMNS FROM 數據表:顯示數據表的屬性,屬性類型,主鍵信息 ,是否為 NULL,默認值等其他信息。
- SHOW INDEX FROM 數據表:顯示數據表的詳細索引信息,包括PRIMARY KEY(主鍵)。
- SHOW TABLE STATUS LIKE [FROM db_name] [LIKE ‘pattern’] \G: 該命令將輸出Mysql數據庫管理系統的性能及統計信息。
- mysql -u root -p:命令行中連接mysql服務器
- 使用 exit 命令
- CREATE DATABASE 數據庫名;使用 create 命令創建數據庫
- drop 命令刪除數據庫 drop database <數據庫名>;
- 選擇數據庫 USE 數據庫名
| TINYINT | 1 byte | (-128,127) | (0,255) | 小整數值 |
| SMALLINT | 2 bytes | (-32 768,32 767) | (0,65 535) | 大整數值 |
| MEDIUMINT | 3 bytes | (-8 388 608,8 388 607) | (0,16 777 215) | 大整數值 |
| INT或INTEGER | 4 bytes | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整數值 |
| BIGINT | 8 bytes | (-9,223,372,036,854,775,808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 極大整數值 |
| FLOAT | 4 bytes | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 單精度浮點數值 |
| DOUBLE | 8 bytes | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 雙精度浮點數值 |
| DECIMAL | 對DECIMAL(M,D) ,如果M>D,為M+2否則為D+2 | 依賴于M和D的值 | 依賴于M和D的值 | 小數值 |
| DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 |
| TIME | 3 | ‘-838:59:59’/‘838:59:59’ | HH:MM:SS | 時間值或持續時間 |
| YEAR | 1 | 1901/2155 | YYYY | 年份值 |
| DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和時間值 |
| TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 結束時間是第 2147483647 秒,北京時間 2038-1-19 11:14:07,格林尼治時間 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和時間值,時間戳 |
| CHAR | 0-255 bytes | 定長字符串 | ||
| VARCHAR | 0-65535 bytes | 變長字符串 | ||
| TINYBLOB | 0-255 bytes | 不超過 255 個字符的二進制字符串 | ||
| TINYTEXT | 0-255 bytes | 短文本字符串 | ||
| BLOB | 0-65 535 bytes | 二進制形式的長文本數據 | ||
| TEXT | 0-65 535 bytes | 長文本數據 | ||
| MEDIUMBLOB | 0-16 777 215 bytes | 二進制形式的中等長度文本數據 | ||
| MEDIUMTEXT | 0-16 777 215 bytes | 中等長度文本數據 | ||
| LONGBLOB | 0-4 294 967 295 bytes | 二進制形式的極大文本數據 | ||
| LONGTEXT | 0-4 294 967 295 bytes | 極大文本數據 |
創建數據表
CREATE TABLE IF NOT EXISTS `runoob_tbl`(`runoob_id` INT UNSIGNED AUTO_INCREMENT,`runoob_title` VARCHAR(100) NOT NULL,`runoob_author` VARCHAR(40) NOT NULL,`submission_date` DATE,PRIMARY KEY ( `runoob_id` ) )ENGINE=InnoDB DEFAULT CHARSET=utf8;- 如果你不想字段為 NULL 可以設置字段的屬性為 NOT NULL, 在操作數據庫時如果輸入該字段的數據為NULL ,就會報錯。
- AUTO_INCREMENT定義列為自增的屬性,一般用于主鍵,數值會自動加1。
- PRIMARY KEY關鍵字用于定義列為主鍵。 您可以使用多列來定義主鍵,列間以逗號分隔。
- ENGINE 設置存儲引擎,CHARSET 設置編碼。
刪除數據表
DROP TABLE table_name ;
插入數據表
INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...valueN );查詢數據表
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- 查詢語句中你可以使用一個或者多個表,表之間使用逗號(,)分割,并使用WHERE語句來設定查詢條件。
- SELECT 命令可以讀取一條或者多條記錄。
- 你可以使用星號(*)來代替其他字段,SELECT語句會返回表的所有字段數據
- 你可以使用 WHERE 語句來包含任何條件。
- 你可以使用 LIMIT 屬性來設定返回的記錄數。
- 你可以通過OFFSET指定SELECT語句開始查詢的數據偏移量。默認情況下偏移量為0。
正則表達式
MySQL可以通過 LIKE …% 來進行模糊匹配。
顯示創建表語句
使用 SHOW CREATE TABLE 命令獲取創建數據表(CREATE TABLE) 語句,該語句包含了原數據表的結構,索引等。
臨時表
MySQL 臨時表在我們需要保存一些臨時數據時是非常有用的。臨時表只在當前連接可見,當關閉連接時,Mysql會自動刪除表并釋放所有空間。
CREATE TEMPORARY TABLE SalesSummary
導出數據
MySQL中你可以使用SELECT…INTO OUTFILE語句來簡單的導出數據到文本文件上。
Python與數據庫交互
創建數據庫鏈接
import pymysqldb = pymysql.connect('localhost', 'root', '123456', 'test', charset='utf8') cur = db.cursor() cur.execute('SELECT * FROM TEST1') data = cur.fetchall() for i in data:print(i)#創建數據庫連接
pymysql.Connect()參數說明
host(str): MySQL服務器地址
port(int): MySQL服務器端口號
user(str): 用戶名
passwd(str): 密碼
db(str): 數據庫名稱
charset(str): 連接編碼,存在中文的時候,連接需要添加charset=‘utf8’,否則中文顯示亂碼。
connection對象支持的方法
cursor() 使用該連接創建并返回游標
commit() 提交當前事務,不然無法保存新建或者修改的數據
rollback() 回滾當前事務
close() 關閉連接
cursor對象支持的方法
execute(op) 執行SQL,并返回受影響行數
fetchone() 取得結果集的下一行
fetchmany(size) 獲取結果集的下幾行
fetchall() 獲取結果集中的所有行
rowcount() 返回數據條數或影響行數
close() 關閉游標對象
Python從數據庫中查詢數據
import pymysqldb = pymysql.connect('localhost', 'root', '123456', 'test', charset='utf8') cur = db.cursor() sql = 'SELECT ID, NAME FROM TEST1' cur.execute(sql) dataS = cur.fetchall() for row in dataS:ID = row[0]NAME = row[1]print("ID: %s NAME: %s" % (ID, NAME))ID: 1 NAME: wangyi
ID: 2 NAME: liuer
ID: 3 NAME: zhangsan
爬蟲數據存入數據庫
將之前爬取的新聞數據存儲至MYSQL數據庫中。中文報錯。
import requests import re import pymysqldb = pymysql.connect('localhost', 'root', '123456', 'test', charset='utf8') cur = db.cursor() sqlC = 'CREATE TABLE NEWS(ID INT, TITLE VARCHAR(100), NEWS_FROM VARCHAR(100), NEWS_TIME VARCHAR(100), URL VARCHAR(' \'200)) ' cur.execute(sqlC)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/65.0.3325.181 Safari/537.36'} keyW = '京東' url = 'https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news&word=' + keyW res = requests.get(url, headers=headers).text regP = '<span class="c-color-gray .*?>(.*?)</span>' publisher = re.findall(regP, res, re.S) regT = '<span class="c-color-gray2 .*?>(.*?)</span>' issueTime = re.findall(regT, res, re.S) regTitle = '<h3 class="news-title.*?<!--s-text-->(.*?)<!--/s-text--></a></h3>' articleTitle = re.findall(regTitle, res, re.S) regLink = '<h3 class="news-title.*?><a href="(.*?)"' articleLink = re.findall(regLink, res, re.S) for i in range(len(articleTitle)):articleTitle[i] = re.sub('<.*?>', '', articleTitle[i])sqlI = "INSERT INTO NEWS VALUES('%s','%s','%s','%s','%s')" % (str(i + 1), str(i + 1), str(i + 1), str(i + 1), articleLink[i])print(sqlI)cur.execute(sqlI)INSERT INTO NEWS VALUES(‘1’,‘1’,‘1’,‘1’,‘https://baijiahao.baidu.com/s?id=1675899921747255219&wfr=spider&for=pc’)
INSERT INTO NEWS VALUES(‘2’,‘2’,‘2’,‘2’,‘https://www.huxiu.com/article/377664.html’)
INSERT INTO NEWS VALUES(‘3’,‘3’,‘3’,‘3’,‘https://baijiahao.baidu.com/s?id=1675900475950715933&wfr=spider&for=pc’)
INSERT INTO NEWS VALUES(‘4’,‘4’,‘4’,‘4’,‘http://news.iresearch.cn/yx/2020/08/335737.shtml?tdsourcetag=s_pcqq_aiomsg’)
INSERT INTO NEWS VALUES(‘5’,‘5’,‘5’,‘5’,‘https://baijiahao.baidu.com/s?id=1675899543403969245&wfr=spider&for=pc’)
INSERT INTO NEWS VALUES(‘6’,‘6’,‘6’,‘6’,‘https://baijiahao.baidu.com/s?id=1675899736117792298&wfr=spider&for=pc’)
INSERT INTO NEWS VALUES(‘7’,‘7’,‘7’,‘7’,‘https://new.qq.com/rain/a/20200824A0F2T700’)
INSERT INTO NEWS VALUES(‘8’,‘8’,‘8’,‘8’,‘https://tech.sina.com.cn/csj/2020-08-24/doc-iivhuipp0406538.shtml’)
INSERT INTO NEWS VALUES(‘9’,‘9’,‘9’,‘9’,‘https://baijiahao.baidu.com/s?id=1675893782003656055&wfr=spider&for=pc’)
INSERT INTO NEWS VALUES(‘10’,‘10’,‘10’,‘10’,‘http://finance.eastmoney.com/a/202008241605671671.html’)
數據清洗
關于中文亂碼
decode()和encode()函數。
數據分析NumPy與pandas
NumPy庫
NumPy(Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
- 一個強大的N維數組對象 ndarray
- 廣播功能函數
- 整合 C/C++/Fortran 代碼的工具
- 線性代數、傅里葉變換、隨機數生成等功能
NumPy 通常與 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用, 這種組合廣泛用于替代 MatLab,是一個強大的科學計算環境,有助于我們通過 Python 學習數據科學或者機器學習。
SciPy 是一個開源的 Python 算法庫和數學工具包。
SciPy 包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。
Matplotlib 是 Python 編程語言及其數值數學擴展包 NumPy 的可視化操作界面。它為利用通用的圖形用戶界面工具包,如 Tkinter, wxPython, Qt 或 GTK+ 向應用程序嵌入式繪圖提供了應用程序接口(API)。
Numpy
Numpy源代碼
Scipy
Scipy源代碼
Matplotlib
Matplotlib源代碼
數據可視化
數據挖掘
解析PDF
解析圖片
解析表格
Python與Word
Python與Excel
數據分析決策
郵件系統
服務器部署
機器學習
未完待續
…
總結
以上是生活随笔為你收集整理的PYTHON学习笔记之(一)2020.08的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生活中的哈哈语录和顺口溜。
- 下一篇: 大数据毕设 - 校园卡数据分析与可视化(