日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python包介绍:numpy

發布時間:2025/4/5 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python包介绍:numpy 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 ndarray

相比于python中的list,ndarray的核心優勢就是運算快

Numpy?喜歡用電腦內存中連續的一塊物理地址存儲數據

?Python?的?List?并不是連續存儲的,它的數據是分散在不同的物理空間(list中的類型可以是不一樣的)

1.1 創建

np.array(object,dtype=…)

用object創建ndarray

?

empty(shape,dtype=)

empty_like(data)

指定形狀&類型,元素值均為隨機值

zeros(shape,dtype=)

zeros_like(data)

填充0

ones

ones_like(data)

填充1

full(shape,num,dtype)

full_like(data,num)

用num填充shape大小的數組

eye(num,dtype)

等同于identity(num,dtype)

num*num的單位矩陣

random.random(shape,dtype)

numpy.random.normal(loc,scale,size)

正態分布

loc(float)正態分布的均值
scale(float)正態分布的標準差
size(int 或者整數元組)輸出的值賦在shape里,默認為None

diag

當?np.diag(array)?

array是一個1維數組時,結果形成一個以一維數組為對角線元素的矩陣

array是一個二維矩陣時,結果輸出矩陣的對角線元素

empty_like(x)

創建一個形狀和x一樣的,數值隨機

arange(start, stop, step, dtype)

??

linspace

創建一個等差數列

?

?

logspace

創建一個等比數列

?

?1.2?ndarray 屬性

ndim

矩陣維數

shape

數組的維度(元組形式)【用reshape調整大小】

itemsize

一個元素的大小(占幾個字節)

real

元素的實部

imag

元素的虛部

dtype

數據類型

size

元素個數

1.3 切片

a[start:end:step]

左閉右開

a[…,x]——第x+1列

a[x,…]——第x+1行

a[[list1],[list2]]

獲取

(list1[0].list2[0])

(list1[1].list2[1])

(list1[2].list2[2])

….等索引位置的數據

?

a[list]

獲取list中這幾行元素

a[np.ix_([list1],[list2])]

獲取第list1行的第list2列的數據

?

1.3.1 切片的性質?

切片是原來的array的一個視圖,修改切片的話,原來的也改變了

!!!記住結論:!!!

如果是數字/帶數字的':'來切片的話,不論是不是有塌縮(類似于r1那樣的變成一維的)都是原來的的一個view,元素修改了就一起修改了

如果是數組這樣的索引切片的話(注:元組tuple不行),那么就是copy不是view了

如果是混合的(一個數組,一個純數字),那么就是copy(因為有數組切片了)

import numpy as np a=np.array([[1,2,3],[3,4,5],[7,8,9]]) b=a[1,:] c=a[[1],:] d=a[1:2,:] print(a,'\n',b,c,d) ''' [[1 2 3][3 4 5][7 8 9]] [3 4 5] [[3 4 5]] [[3 4 5]] ''' b[1]=10 print(a,'\n',b,c,d) ''' [[ 1 2 3][ 3 10 5][ 7 8 9]] [ 3 10 5] [[3 4 5]] [[ 3 10 5]] '''

?1.4 布爾索引

?

?

?2? 數組運算

?執行數組的運算必須有相同的行列/符合廣播規則

2.1 相同行列

相同行列:對應元素加減乘除

?

?

2.2 廣播原則?

?當運算中的 2 個數組的形狀不同時,numpy 將自動觸發廣播機制

2.2.1 數組+標量

?

?

?2.2.2 數組+行/列

?

3 內積外積與矩陣乘法?

?3.1 外積

?

?3.2 內積

內積——inner/dot

?np.dot(a,b)等價于a.dot(b)

inner用法和dot稍有不同:?np.dot(a, b)= np.inner(a, b.T),相當于b做一次轉置

3.3 乘法

matmul/@/dot

?4 函數

all

矩陣中元素是否全部非零

any

矩陣中是否有元素非零

argmax/argmin

第幾維度的最大最小值的坐標

Argmax[0]:對每一個a[…][0][0],a[…][0][1],a[…][0][2]

a[…][1][0],a[…][1][1],a[…][1][2]找一個最大值

count_nonzero()

統計非零元素值

floor

向下取整

ceil

向上取整

prod

所有元素乘積結果

argsort

argsort函數返回的是數組值從小到大的索引值

b

1

3

5

2

6

7

4

3

序號

0

1

2

3

4

5

6

7

?

b——正序

-b——倒序

如果是多維的話(默認是最大的一個axis)

Axis=0

a[..][0][0],a[…][0][1],a[…][0][2]

a[..][1][0],a[…][1][1],a[…][1][2]

Axis=1

a[0][…][0],a[0][…][1],a[0][…][2]

Axis=2同理

copy

這個是真copy,不是view

clip

截取數組中在min和max之間的部分,比min小的置為min,比max大的置為max

cumsum/cumprod

括號是幾——第幾維度累加/累乘(a[][][][]里面的第幾個,從左往右)

括號里是0:原第一行=原第一行

? 原第二行=原第二行+原第一行

? 原第三行=原第三行+原第二行+原第一行

括號里是1:列的操作

沒有字母,所有元素,一個一個疊加

diff

類差運算

flatten

返回一份數據拷貝,對拷貝所做的修改不影響原始數組

F風格:按列展開

flat 一個迭代器

np.isin(a,b)

?用于判定a中的元素在b中是否出現過,如果出現過返回True,否則返回False,最終結果為一個形狀和a一模一樣的數組。

和np.where搭配使用,效果更好(np.where返回True的坐標)

分別是我找到的1的第一維坐標和第二位坐標

nditer

按照ndarray在內存中的存儲順序逐個訪問

a和a轉置在內存中的存儲順序一樣——他們的遍歷順序一樣

默認order=’C‘行優先

——order=“F’(fortran 列優先)?

meshgrid(ndarray,ndarray)

返回坐標方格的X與Y

x和y都是二維數組,分別是這些點的橫坐標/縱坐標

mean/average

計算平均數,加axis就是某一個軸,

比如axis=0,就是每一列一個平均數(a[;;;][0],a[,,,,][1],…..,)

average只能是np.average

median

中位數

std

標準差

newaxis

添加一個維度

感覺還是reshape靠譜一點

ravel

和flatten差不多,唯一的區別是,修改會影響原始數組

reshape

resize

如果一樣大的話和a.reshape()差不多

shape比a的尺寸小的話,那就是截取

如果尺寸大的話,會把a的元素按照a的順序補進去

np.round

round( number ) 函數會返回浮點數 number 的四舍五入值

具體定義為 round(number[,digits]):

如果 digits>0 ,四舍五入到指定的小數位;

如果 digits=0 ,四舍五入到最接近的整數;

如果 digits<0 ,則在小數點左側進行四舍五入;

如果 round() 函數只有 number 這個參數,則等同于 digits=0。

split

等量對分

(axis=0 a[1~n][0]會被等分到各個里面去)

一定是等量,不等量的話會報錯

vsplit=split(axis=0)

hsplit=split(axis=1)

array_split

不等量分割

np.sin

逐元素取sin

std

計算標準差

Axis=0——計算a[…][0][0],a[…][0][1],…的標準差

squeeze

刪除單維度條目

tolist

轉換為list

triu(data,k)

以data為數據,創建一個上三角矩陣,k表示這個上三角的邊接往上/下移動幾條線的距離

tile

np.tile(a,(2))函數的作用就是將函數將函數沿著X軸擴大兩倍。如果擴大倍數只有一個,默認為X軸

np.tile(a,(2,1))第一個參數為Y軸擴大倍數,第二個為X軸擴大倍數。本例中X軸擴大一倍便為不復制。

np.timedelta(num,'x')

計算兩個datetime中間差多少時間間隔(向下取整)【YMWDhmsmsusns

轉置

where

numpy.where()?有兩種用法:

1. np.where(condition, x, y)

滿足條件(condition),輸出x,不滿足輸出y。*如果y是數組的話,輸出y相應位置的元素

2. np.where(condition)

只有條件 (condition),沒有x和y,則輸出滿足條件 (即非0) 元素的坐標。

這里的坐標以tuple的形式給出,通常原數組有多少維,輸出的tuple中就包含幾個數組,分別對應符合條件元素的各維坐標。

fromstring

從string中提取成ndarray

?只能讀取一個數值序列

番外篇:理解axis

前面我們提到了axis的用法

Axis=0——

a[..][0][0],a[…][0][1],a[…][0][2]

a[..][1][0],a[…][1][1],a[…][1][2]

Axis=1——

a[0][…][0],a[0][…][1],a[0][…][2]

換一種理解就是:

有兩組數據,它們的維度都是(2,3),即都是兩行三列的數據。

當axis設為0時,表示我們要修改第一個維度的數據,兩組數據的第一個維度都是2,當它們合并時就變成了4,所以合并后的數據的維度就是(4,3),即變成了四行三列。同理,axis設為1,合并后的數據維度就變成了(2,6),即兩行六列~

同理,axis參數在其他方法里也可以用同樣的方法思考,比如求均值的mean方法,當axis設為0時,對第一個維度的數據進行求均值,維度為(2,3)的數據計算完后就變成了維度為(1,3)的數據

5 文件處理

tofile() & fromfile()

tofile()將數組中的數據以二進制格式寫進文件

tofile()輸出的數據不保存數組形狀和元素類型等信息

fromfile()函數讀回數據時需要用戶指定元素類型,并對數組的形狀進行適當的修改

讀入數據的時候,需要設置正確的dtype參數,并且修改屬組的shape屬性,才會得到和原始數據一致的結果

sep參數:tofile 和 fromfile中數值的分隔符

save() & load()

NumPy專用的二進制格式保存數據,它們會自動處理元素類型和形狀等信息

savez()

將多個數組保存到一個文件中

savez()的第一個參數是文件名,其后的參數都是需要保存的數組

?沒有起名的話就是'arr_0","arr_1",....起來名字的就是所起的名字

savez_compressed()

在savez的基礎上 進行一次數據壓縮

?

ndarray寫入csv

先轉化成DataFrame

savetxt() & loadtxt()

  • 讀寫1維和2維數組的文本文件
  • 可以用它們讀寫CSV格式的文本文件
  • loadtxt 有一個參數是skiprows,表示跳過幾行的內容

isnan

判斷ndarray里面的元素是否是NaN

?python 筆記:愛因斯坦求和 einsum_UQI-LIUWJ的博客-CSDN博客

總結

以上是生活随笔為你收集整理的python包介绍:numpy的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕18页 | xxxxⅹxxxhd日本8hd| 午夜性福利 | 污污的网站在线观看 | 日本深夜福利 | 亚洲看看 | 亚洲一区二区三区电影在线观看 | 色综合中文 | 日韩三级网| 欧美日日 | 久草福利 | 风韵多水的老熟妇 | 久久久国产精品久久久 | 无码 制服 丝袜 国产 另类 | 少妇一级淫片免费放中国 | 成都电影免费大全 | 国产宾馆实践打屁股91 | 波多野结衣电车痴汉 | 尤物在线| 91激情视频在线观看 | 欧美色图亚洲激情 | 淫欲av| 免费成人国产 | 免费古装一级淫片潘金莲 | 精品视频一区二区三区在线观看 | 性久久久久久久久久久久 | 91午夜视频在线观看 | 打屁屁日本xxxxx变态 | 人人做人人爽 | 国产精品系列在线 | 婷婷综合网站 | 男女草比视频 | 亚洲图片二区 | 春色导航 | 中文字幕免费高清网站 | 成人黄色小说视频 | 日韩在线观看网址 | av在线视| xxx.国产| hitomi一区二区三区精品 | av老司机在线观看 | 日韩在线观看 | 亚洲黄色在线 | 制服.丝袜.亚洲.另类.中文 | 女生的胸无遮挡 | 成人动漫在线观看 | 日韩午夜伦 | 日本少妇b | 成人av在线影院 | 国产日韩在线播放 | 中文字幕第一页在线 | 国产老熟女伦老熟妇露脸 | 国产91精品在线观看 | 亚洲国产成人精品一区二区三区 | 在线天堂中文在线资源网 | 国产精品jizz在线观看无码 | 亚洲精品成人片在线观看精品字幕 | 欧美亚洲在线观看 | 亚洲欧美日韩系列 | 毛片视频观看 | 桥本有菜aⅴ一区二区三区 在线午夜电影 | 欧美自拍亚洲 | 老司机深夜福利视频 | 人人妻人人爽一区二区三区 | 久久久久久久色 | 拍国产真实乱人偷精品 | 在线一区视频 | 欧美高清hd18日本 | 进去里在线观看 | 经典三级在线视频 | 久久大胆视频 | 曰本黄色片 | 91免费高清在线观看 | 中文字字幕在线 | 国产精品久久777777毛茸茸 | 国产一区2区 | 国产a∨精品一区二区三区仙踪林 | 久久久精品久久 | 五月天综合视频 | 日韩在线第二页 | 国产又爽又黄又嫩又猛又粗 | 性欧美1819性猛交 | 少妇做爰免费理伦电影 | 二区三区在线 | 人人干在线视频 | 男生和女生靠逼视频 | 青青草精品在线 | 亚洲成人黄色小说 | 色翁荡息又大又硬又粗又爽 | 日韩在线一卡二卡 | 伊人久久久久噜噜噜亚洲熟女综合 | 尤物视频在线播放 | 来吧亚洲综合网 | 日韩成人在线视频 | 人人插人人爽 | www四虎影院 | 日韩视频网址 | 91香草视频 | 一区二区三区网 |