中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Python 數(shù)據(jù)分析(一):NumPy 基礎(chǔ)知識(shí)

目錄

1. 簡(jiǎn)介

NumPy(Numerical Python)是一個(gè)開源的 Python 科學(xué)計(jì)算擴(kuò)展庫(kù),主要用來處理任意維度數(shù)組與矩陣,通常對(duì)于相同的計(jì)算任務(wù),使用 NumPy 要比直接使用 Python 基本數(shù)據(jù)結(jié)構(gòu)要簡(jiǎn)單、高效的多。安裝使用 pip install numpy 命令即可。

2. 使用

2.1 ndarray

ndarray 即 n 維數(shù)數(shù)組類型,它是一個(gè)相同數(shù)據(jù)類型的集合,以 0 下標(biāo)為開始進(jìn)行集合中元素的索引。

創(chuàng)建數(shù)組可以使用 NumPy 的 array 方法,具體格式如下:

array(p_object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)

  • p_object:數(shù)組或嵌套的數(shù)列

  • dtype:數(shù)組元素的數(shù)據(jù)類型

  • copy:是否需要復(fù)制

  • order:創(chuàng)建數(shù)組的樣式,C 為行方向,F(xiàn) 為列方向,A 為任意方向(默認(rèn))

  • subok:默認(rèn)返回一個(gè)與基類類型一致的數(shù)組

  • ndmin:生成數(shù)組的最小維度

當(dāng)然,還可以使用 arange 方法,下面看一下具體使用示例。

創(chuàng)建數(shù)組

看一下如何創(chuàng)建一維數(shù)組

import numpy as nparr1 = np.array([1, 2, 3, 4, 5])arr2 = np.array(range(1, 6))arr3 = np.arange(1, 6)print (arr1)print (arr2)print (arr3)

看一下如何創(chuàng)建多維數(shù)組,以二維數(shù)組為例

import numpy as nparr = np.array([[1, 2], [3, 4], [5, 6]])print(arr)

常用屬性

通過示例來看一下 ndarray 對(duì)象的常用屬性

import numpy as nparr = np.array([1, 2, 3])# 元素類型print(arr.dtype)# 形狀print(arr.shape)# 元素個(gè)數(shù)print(arr.size)# 維度print(arr.ndim)# 每個(gè)元素大?。ㄗ止?jié))print(arr.itemsize)

改變數(shù)組的形狀

import numpy as nparr = np.arange(30)print(arr)# 變成二維數(shù)組arr.shape = (5, 6)print(arr)# 變成三維數(shù)組arr = arr.reshape((2, 3, 5))print(arr)

2.2 數(shù)據(jù)類型

通過下表來看一下 NumPy 的常用數(shù)據(jù)類型。

類型描述
int_默認(rèn)的整數(shù)類型(類似于 C 語言中的 long,int32 或 int64)
intc與 C 的 int 類型一樣,一般是 int32 或 int 64
intp用于索引的整數(shù)類型(類似于 C 的 ssize_t,一般情況下仍然是 int32 或 int64)
int8字節(jié)(-128 to 127)
int16整數(shù)(-32768 to 32767)
int32整數(shù)(-2147483648 to 2147483647)
int64整數(shù)(-9223372036854775808 to 9223372036854775807)
uint8無符號(hào)整數(shù)(0 to 255)
uint16無符號(hào)整數(shù)(0 to 65535)
uint32無符號(hào)整數(shù)(0 to 4294967295)
uint64無符號(hào)整數(shù)(0 to 18446744073709551615)
bool_布爾型數(shù)據(jù)類型(True 或者 False)
float_float64 類型的簡(jiǎn)寫
float16半精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,5 個(gè)指數(shù)位,10 個(gè)尾數(shù)位
float32單精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,8 個(gè)指數(shù)位,23 個(gè)尾數(shù)位
float64雙精度浮點(diǎn)數(shù),包括:1 個(gè)符號(hào)位,11 個(gè)指數(shù)位,52 個(gè)尾數(shù)位
complex_complex128 類型的簡(jiǎn)寫,即 128 位復(fù)數(shù)
complex64復(fù)數(shù),表示雙 32 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)
complex128復(fù)數(shù),表示雙 64 位浮點(diǎn)數(shù)(實(shí)數(shù)部分和虛數(shù)部分)

通過示例來看一下如何修改數(shù)據(jù)類型。

import numpy as nparr1 = np.array([1, 2, 3])arr2 = np.array([1.111, 2.222, 3.333])# 當(dāng)前數(shù)據(jù)類型print(arr1.dtype)# 修改數(shù)據(jù)類型arr1 = arr1.astype(np.int64)print(arr1.dtype)# 保留一位小數(shù)arr2 = np.round(arr2, 1)print(arr2)

2.3 索引與切片

NumPy 數(shù)組支持索引、切片操作,還可以進(jìn)行迭代,先看一下一維數(shù)組。

import numpy as nparr = np.array([1, 2, 3, 4, 5, 6])print(arr[3])# 修改元素值arr[3] = 10print(arr[3])print(arr[2:])print(arr[2:4])print(arr[4:])for i in arr:    print(i)

再看一下多維數(shù)組的這些操作。

import numpy as nparr = np.arange(12).reshape(3, 4)print(arr)# 取某一個(gè)值print(arr[2, 3])# 取多個(gè)不連續(xù)的值print(arr[[0, 2],[1, 3]])# 取一行print(arr[0])# 連續(xù)取多行print(arr[1:])# 取不連續(xù)的多行print(arr[[0, 2]])# 取一列print(arr[:, 0])# 連續(xù)取多列print(arr[:, 2:])# 取不連續(xù)的多列print(arr[:, [0, 2]])

2.4 副本與視圖

視圖(淺復(fù)制)只是原有數(shù)據(jù)的一個(gè)引用,通過該引用可訪問、操作原有數(shù)據(jù),如果我們對(duì)視圖進(jìn)行修改,它會(huì)影響原始數(shù)據(jù),因?yàn)闇\復(fù)制共享內(nèi)存。

副本(深復(fù)制)是對(duì)數(shù)據(jù)的完整拷貝,如果我們對(duì)副本進(jìn)行修改,它不會(huì)影響到原始數(shù)據(jù),因?yàn)樯顝?fù)制不共享內(nèi)存。

調(diào)用 ndarray 的 view() 方法會(huì)產(chǎn)生一個(gè)視圖,下面通過示例來看一下。

import numpy as npa = np.arange(6).reshape(2,3)# 創(chuàng)建視圖b = a.view()print('a的id:', id(a))print('b的id:', id(b))# 修改 b 的形狀b.shape =  3,2print('a的形狀:')print(a)print('b的形狀:')print(b)print(a is b)

調(diào)用 ndarray 的 copy() 方法會(huì)產(chǎn)生一個(gè)副本,下面通過示例來看一下。

import numpy as npa = np.arange(1, 6)# 創(chuàng)建副本b = a.copy()print(a is b)b[1] = 10print(a[1])print(b[1])

2.5 軸的概念

NumPy 中的軸簡(jiǎn)單來說就是方向的意思,使用數(shù)字 0、1、2 表示,一維數(shù)組只有 0 軸,二維數(shù)組有 0、1 軸,三維數(shù)組有 0、1、2 軸,了解軸的相應(yīng)概念可以方便我們進(jìn)行相應(yīng)計(jì)算。

2.6 基本運(yùn)算

數(shù)組與數(shù)字之間運(yùn)算

看一下數(shù)組與數(shù)字之間的加、減、乘、除運(yùn)算。

import numpy as nparr = np.arange(12).reshape(3, 4)print(arr + 3)print(arr - 1)print(arr * 2)print(arr / 3)

數(shù)組與數(shù)組之間運(yùn)算

看一下數(shù)組與數(shù)組之間的運(yùn)算。

import numpy as np# 相同行數(shù),相同列數(shù)a = np.arange(12).reshape(3, 4)b = np.arange(20, 32).reshape(3, 4)print(a + b)print(b * a)# 相同行數(shù)c = np.arange(12).reshape(3, 4)d = np.arange(3).reshape(3, 1)print(c + d)print(c - d)# 相同列數(shù)e = np.arange(12).reshape(4, 3)f = np.arange(3).reshape(1, 3)print(e * f)print(e - f)

常用數(shù)學(xué)運(yùn)算

import numpy as nparr = np.array([[33, 55], [11, 66], [22, 99]])print(arr)# 最大值print(np.max(arr))# 最小值print(np.min(arr))# 某一軸上的最大值print(np.max(arr, 1))# 某一軸上的最小值print(np.min(arr, 1))# 平均值print(np.mean(arr))# 某一行、一列的平均值print(np.mean(arr, axis=1))# 最大值索引print(np.argmax(arr))print(np.argmax(arr, axis=1))# 最小值索引print(np.argmin(arr))print(np.argmin(arr, axis=1))# 極差print(np.ptp(arr))print(np.ptp(arr, axis=1))# 方差print(np.var(arr))# 標(biāo)準(zhǔn)差print(np.std(arr))# 中位數(shù)print(np.median(arr))

2.7 常用操作

添加操作

NumPy 的 append() 方法可以在數(shù)組的末尾添加值,該操作會(huì)分配至整個(gè)數(shù)組,并把原數(shù)組復(fù)制到新數(shù)組,該操作需保證輸入的維度匹配,下面看一下使用示例。

import numpy as nparr = np.array([[1, 3, 5], [2, 4, 6]])# 添加元素print(np.append(arr, [1, 1, 3]))# 沿 0 軸添加元素print(np.append(arr, [[1, 1, 3]], axis=0))# 沿 1 軸添加元素print(np.append(arr, [[1, 1, 3], [2, 1, 5]], axis=1))

我們還可以使用 insert() 方法進(jìn)行添加操作,該方法在給定索引前沿給定軸向數(shù)組中插入值,下面看一下使用示例。

import numpy as nparr = np.array([[1, 3, 5], [2, 4, 6]])# 添加元素print(np.insert(arr, 1, [1, 1, 3]))# 沿 0 軸添加元素print(np.insert(arr, 1, [1, 1, 3], axis=0))# 沿 1 軸添加元素print(np.insert(arr, 1, [1, 5], axis=1))

刪除操作

NumPy 的 delete() 可以對(duì)數(shù)組進(jìn)行刪除操作,下面看一下使用示例。

import numpy as nparr = np.array([[1, 3, 5], [2, 4, 6]])# 刪除元素print(np.delete(arr, 1))# 沿 0 軸刪除元素print(np.delete(arr, 1, axis=0))# 沿 1 軸刪除元素print(np.delete(arr, 1, axis=1))

去重操作

NumPy 的 unique() 方法可以去除數(shù)組中的重復(fù)元素。

import numpy as nparr = np.array([1, 3, 5, 2, 4, 6, 1, 5, 3])# 去除重復(fù)元素print(np.unique(arr))# 去重?cái)?shù)組的索引數(shù)組u, indices = np.unique(arr, return_index=True)print(indices)# 去重元素的重復(fù)數(shù)量u, indices = np.unique(arr, return_counts=True)print(indices)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python numpy的基本操作你一般人都不會(huì)
NumPy基礎(chǔ)教程(四)數(shù)組應(yīng)用
D02 Numpy常用函數(shù),如何優(yōu)雅的遍歷一個(gè)多維數(shù)組?
Numpy高級(jí)操作大全?。?!
python實(shí)踐:深入淺出,NumPy快速入門筆記
Python NumPy reshape函數(shù)
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服