最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于numpy數(shù)組中元素單個(gè)選取或部分選取問(wèn)題

 更新時(shí)間:2023年07月07日 10:05:05   作者:遣雋命運(yùn)  
這篇文章主要介紹了關(guān)于numpy數(shù)組中元素單個(gè)選取或部分選取問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

numpy數(shù)組中元素單個(gè)選取或部分選取

一維數(shù)組中選擇部分元素輸出,即數(shù)組名【【下標(biāo)】】,是兩個(gè)中括號(hào)!

二維數(shù)組選取一個(gè)元素,即數(shù)組名【行,列】,行列是從0開(kāi)始的。

行列可以省略,行和列全部省略時(shí),輸出整個(gè)數(shù)組。

行省略,代表輸出所有行;列省略,代表輸出所有列。

可以指定輸出某幾行、某幾列,即數(shù)組名【1:3,1:4】,輸出1到2行且1到3列的所有元素,即輸出二維數(shù)組。

import numpy as np
ans = np.array([1,2,3,4,5,6,7,8,9]) ? ?#一維數(shù)組
a = np.array([1,2,3,4,5,6,7]) ? ?#一維數(shù)組
b = np.array([[1,2,3],[4,5,6],[7,8,9]]) ? ?#二維數(shù)組
#獲取指定位置的元素
print(ans[[2,3,5]]) ? ? ?#即為輸出ans數(shù)組中下標(biāo)為2,3,5的元素
print(b[1,2]) ? ?#輸出1行2列的元素,這里的行和列是從0開(kāi)始的
print(b[1,:]) ? ?#輸出1行的所有元素,“:”就代表著輸出所有元素
print(b[:,2]) ? ?#輸出2列的所有元素
print(b[1:3,0:3]) ? ?#1到2行,0到2列的元素,“端點(diǎn)左閉右開(kāi)”

numpy數(shù)組操作

引言

  • python中用list保存一組值,可以用來(lái)作為數(shù)組使用,由于列表的元素可以是任何對(duì)象,英雌列表中所保存的是對(duì)象的指針,為了保存一個(gè)簡(jiǎn)單的[1,2,3],需要三個(gè)指正和三個(gè)整數(shù)對(duì)象,對(duì)于數(shù)值運(yùn)算來(lái)說(shuō)這種結(jié)果顯然比較浪費(fèi)你內(nèi)存和CPU計(jì)算時(shí)間
  • 此外python還提供了一個(gè)array模塊,array對(duì)象和列表不同,他直接保存數(shù)值,呵呵C語(yǔ)言的一位數(shù)據(jù)比較類似,但是由于它不支持多維,也沒(méi)有各種運(yùn)算函數(shù),因此也不適合做數(shù)值運(yùn)算
  • numpy的誕生彌補(bǔ)了這些不足,numpy提供了ndarray對(duì)象:是存儲(chǔ)單一數(shù)據(jù)類型的多維數(shù)組

numpy是高性能科學(xué)計(jì)算和數(shù)據(jù)分析的基礎(chǔ)包,支持為讀書族與矩陣運(yùn)算包括:

  • 一個(gè)強(qiáng)大的n為數(shù)組對(duì)象ndarray,具有適量算數(shù)運(yùn)算和復(fù)雜廣播能力的快速且節(jié)省時(shí)間的多維數(shù)組。
  • 用于對(duì)整組數(shù)據(jù)進(jìn)行快速運(yùn)算的標(biāo)準(zhǔn)數(shù)學(xué)函數(shù)
  • 對(duì)于讀寫磁盤數(shù)據(jù)的工具以及用于操作內(nèi)存映射文件的工具
  • 線性代數(shù),隨機(jī)數(shù)生成以及傅里葉變換等功能

ndarray

  • N維數(shù)組對(duì)象ndarray是用于存放同類型元素的多維數(shù)組
  • ndarray中的每個(gè)元素在內(nèi)存中都有相容存儲(chǔ)大小的區(qū)域
  • ndarray中的每個(gè)元素是數(shù)據(jù)類型對(duì)象的對(duì)象簡(jiǎn)稱dtype
  • 可以對(duì)數(shù)組進(jìn)行索引和切片
  • 可以通過(guò)ndarray的方法和屬性來(lái)訪問(wèn)和修改ndarray的內(nèi)容

創(chuàng)建nadrray:創(chuàng)建數(shù)組最簡(jiǎn)單的辦法就是使用array函數(shù),它接受一切序列型的對(duì)象,然后產(chǎn)生一個(gè)含有傳入數(shù)據(jù)的numpy數(shù)組,其中嵌套序列(等長(zhǎng)列表組成的列表)將會(huì)被轉(zhuǎn)化為一個(gè)多維數(shù)組

numpy.array(obkject, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

object 數(shù)組或嵌套的數(shù)列

dtype 數(shù)組元素的數(shù)據(jù)類型 可選

copy 對(duì)象是否需要復(fù)制

order 創(chuàng)建數(shù)組的樣式,c為行方向,F(xiàn)為列方向,A為任意方向

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

ndmin 指定生成數(shù)組的最小維度

import numpy as np
a = [1,2,3,4]
b = np.array(a)
print(b)
>>> array([1,2,3,4])
c = np.array([[1,2],[3,4]])
print(c)
>>>>[[1,2]
[3,4]]

除了np.array之外,還有一些函數(shù)也可以新建數(shù)組:

  • zrrors和ones分別可以創(chuàng)建指定長(zhǎng)度或者形狀的全0或1數(shù)組
  • empty可以創(chuàng)建一個(gè)沒(méi)有任何具體值的數(shù)組
np.zeros(3) # 全0數(shù)組
np.ones(3) # 全1數(shù)組
np.zeros((3,3)) #全0二維數(shù)組 三行三列
np.zeros((3,1))  # 0二維數(shù)組 三行一列
np.zeros((1,3))
np.ones((3,3))
np.identity(3) #單位矩陣,三行三列

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

創(chuàng)建隨機(jī)數(shù)

均勻分布

  • np.random.rand(10,10) 創(chuàng)建指定形狀(示例為10行10列)的數(shù)組(范圍在0-1之間)
  • np.random.uniform(0,100) 創(chuàng)建指定范圍內(nèi)的一個(gè)數(shù)
  • np.random.randint(0,100) 創(chuàng)建指定范圍內(nèi)的整數(shù)

正態(tài)分布

  • np.random.normal(1.75,0.1,(2,3)) 給定均值/標(biāo)準(zhǔn)差/維度的正態(tài)分布

創(chuàng)建隨機(jī)數(shù)組

np.random.randint(0,50,5) # 隨機(jī)數(shù)組,5個(gè)0-50之間的數(shù)字
np.random.randint(0,50,(3,5)) #3行5列 供15個(gè)隨機(jī)數(shù),都在0-50之間
np.random.rand(10) #10個(gè)結(jié)余[0,1)之間的隨機(jī)數(shù)
np.random.standard_noraml(5) #從標(biāo)準(zhǔn)正太分部中隨機(jī)采樣5個(gè)數(shù)字

ndarray的數(shù)組屬性

用法說(shuō)明
b.size數(shù)組元素個(gè)數(shù)
b.shape數(shù)組形狀
b.ndim數(shù)組維度
b.dtype數(shù)組元素類型
b.ltemsize數(shù)組元素字節(jié)大小

b.reshape()可以更改形狀(3,2)變(2,3)或者其他

數(shù)組和標(biāo)量之間的運(yùn)算

數(shù)組很重要,因?yàn)樗梢允俏覀儾挥镁帉懷h(huán)即可對(duì)數(shù)據(jù)執(zhí)行批量運(yùn)算,這通常叫做矢量化,大小相同的數(shù)組之間的任何算數(shù)運(yùn)算都會(huì)將運(yùn)算應(yīng)用到元素級(jí),同樣,數(shù)組與標(biāo)量的算數(shù)運(yùn)算也會(huì)將那個(gè)表兩只傳播到各個(gè)元素

arr = np.array([[1.,2.,3.],[4.,5.,6.]])
print(arr)
>>>array([[1., 2., 3.],
       [4., 5., 6.]])
print(1/array)
>>>array([[1.        , 0.5       , 0.33333333],
       [0.25      , 0.2       , 0.16666667]])
print(arr-arr)
>>>array([[0., 0., 0.],
       [0., 0., 0.]])
print(arr*arr)
>>>array([[ 1.,  4.,  9.],
       [16., 25., 36.]])
print(arr*0.5)
>>>array([[0.5, 1. , 1.5],
       [2. , 2.5, 3. ]])

基本的索引和切片

  • 選取數(shù)據(jù)子集或單個(gè)元素的方式很多
  • 以為數(shù)組很簡(jiǎn)單,從表面上看,他們跟python列表差不多
  • 一位數(shù)組跟列表最重要的區(qū)別在于,數(shù)組切片是原始數(shù)據(jù)的視圖,這意味著數(shù)據(jù)不會(huì)被復(fù)制,數(shù)組視圖上任何修改都會(huì)直接反應(yīng)到原始數(shù)組上
  • 將一個(gè)表兩只賦值給一個(gè)切片是,該值會(huì)自動(dòng)傳播到整個(gè)選取
arr = np.arange(10)
print(arr[5])
>>>5
print(arr[5:8])
>>>array([5,6,7])
print(arr[5:8]=12)
>>>array([0,1,2,3,4,12,12,12,8,9])
arr_slice = arr[5:8]
arr_slice[1] = 12345
print(arr)
>>>array([0,1,2,3,4,12,12345,12,8,9])
arr_slice[:] = 64
print(arr)
>>>array([0,1,2,3,4,64,64,64,8,9])
  • 在二維數(shù)組中,個(gè)所有位置上的元素不再是標(biāo)量,而是一維數(shù)組
  • 可以對(duì)個(gè)元素進(jìn)行遞歸訪問(wèn),但這樣有點(diǎn)麻煩
  • 傳入一個(gè)以逗號(hào)隔開(kāi)的所有列表來(lái)選取單個(gè)元素
  • 在多維數(shù)組中,如果省略了后面的索引,則返回對(duì)象會(huì)使一個(gè)維度低一點(diǎn)的ndarray
arr3d = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print(arr3d)
>>>array([[[ 1,  2,  3],
        [ 4,  5,  6]],
       [[ 7,  8,  9],
        [10, 11, 12]]])
print(arr3d[0])
>>>array([[1, 2, 3],
       [4, 5, 6]])
print(arr3d[0][1])
>>>array([4, 5, 6])

數(shù)學(xué)和統(tǒng)計(jì)方法

可以通過(guò)數(shù)組上的一組數(shù)學(xué)函數(shù)對(duì)整個(gè) 數(shù)組或者某個(gè)軸向的數(shù)據(jù)進(jìn)行統(tǒng)計(jì)計(jì)算

方法說(shuō)明
sum對(duì)數(shù)組中全部或軸向元素求和。零長(zhǎng)度的數(shù)組的sum為0
mean算數(shù)平均數(shù),零長(zhǎng)度的數(shù)組的mean為NAN
std,var分別為標(biāo)準(zhǔn)差和方差,自由度可調(diào)(默認(rèn)為n)
min,max最小值和最大值
argmin,argmax分別為最小值和最大值的索引
cumsum所有元素的累加
cumprod所有元素的累積
arr = np.random.randn(5,4) #5行4列的正太分部的數(shù)據(jù)
print(arr.mean()) #這個(gè)值和下面方法的值相同
print(np.mean(arr))
print(arr.sum())

值得注意的是:

mean和sum這類的函數(shù)可以接受一個(gè)axis參數(shù)(用于計(jì)算該軸向上的統(tǒng)計(jì)值)

arr.mean(axis=1)
arr.sum(0)

cumsum:按照所給定的周參數(shù)返回元素的梯形累積和,axis=0,按照行累加。axis=1,按照列累加

cumprod:按照所給定的周參數(shù)返回元素的梯形累積乘積,axis=0,按照行累積,axis=1按照列累積

arr = np.array([[0,1,2],[3,4,5],[6,7,8]])
arr.cumsum(0)
>>>array([[ 0,  1,  2],
       [ 3,  5,  7],
       [ 9, 12, 15]], dtype=int32)
arr.cumprod(1)
>>>array([[  0,   0,   0],
       [  3,  12,  60],
       [  6,  42, 336]], dtype=int32)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python安裝圖文教程 Pycharm安裝教程

    Python安裝圖文教程 Pycharm安裝教程

    這篇文章主要為大家詳細(xì)介紹了Pycharm及Python安裝圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python之print函數(shù)里逗號(hào)和加號(hào)的區(qū)別及說(shuō)明

    Python之print函數(shù)里逗號(hào)和加號(hào)的區(qū)別及說(shuō)明

    這篇文章主要介紹了Python之print函數(shù)里逗號(hào)和加號(hào)的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python自動(dòng)化測(cè)試pytest中fixtureAPI簡(jiǎn)單說(shuō)明

    Python自動(dòng)化測(cè)試pytest中fixtureAPI簡(jiǎn)單說(shuō)明

    這篇文章主要為大家介紹了Python自動(dòng)化測(cè)試pytest中fixtureAPI的簡(jiǎn)單說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • python學(xué)習(xí)實(shí)操案例(四)

    python學(xué)習(xí)實(shí)操案例(四)

    這篇文章主要介紹了python學(xué)習(xí)實(shí)操案例,這一篇小編給大家?guī)?lái)的是列表,所以這里是和列表有關(guān)的案例,需要的小伙伴可以參考一下,希望對(duì)你有所幫助<BR>
    2022-02-02
  • Python如何查找特定名稱文件

    Python如何查找特定名稱文件

    這篇文章主要介紹了Python如何查找特定名稱文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 使用Python調(diào)用天地圖接口

    使用Python調(diào)用天地圖接口

    天地圖是中國(guó)國(guó)家測(cè)繪地理信息局推出的一款權(quán)威、全面的在線地理信息系統(tǒng),本文將詳細(xì)介紹如何使用Python調(diào)用天地圖接口,感興趣的可以了解下
    2024-12-12
  • 基于python實(shí)現(xiàn)坦克大戰(zhàn)游戲

    基于python實(shí)現(xiàn)坦克大戰(zhàn)游戲

    這篇文章主要為大家詳細(xì)介紹了基于python實(shí)現(xiàn)坦克大戰(zhàn)游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • Python使用asyncio+aiohttp實(shí)現(xiàn)高效異步并發(fā)下載

    Python使用asyncio+aiohttp實(shí)現(xiàn)高效異步并發(fā)下載

    這篇文章主要為大家詳細(xì)介紹了如何使用 Python 的異步編程模型(asyncio)配合 aiohttp 庫(kù),實(shí)現(xiàn)真正高效的異步并發(fā)下載,大幅提升下載速度,感興趣的小伙伴可以了解下
    2026-01-01
  • 詳解Python如何使用audioflux處理音頻數(shù)據(jù)

    詳解Python如何使用audioflux處理音頻數(shù)據(jù)

    Python的audioflux庫(kù)是一個(gè)處理音頻數(shù)據(jù)的強(qiáng)大工具,旨在提供簡(jiǎn)單而強(qiáng)大的接口,用于音頻信號(hào)處理、分析和合成,下面就跟隨小編一起來(lái)學(xué)習(xí)一下它的具體使用吧
    2023-06-06
  • 詳解Python文件修改的兩種方式

    詳解Python文件修改的兩種方式

    這篇文章主要介紹了詳解Python文件修改的兩種方式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08

最新評(píng)論

东丰县| 枝江市| 万荣县| 金门县| 徐水县| 博爱县| 隆安县| 鄂托克前旗| 年辖:市辖区| 通海县| 纳雍县| 云南省| 资溪县| 金华市| 榆社县| 扬州市| 永登县| 从江县| 扎赉特旗| 荔浦县| 黑龙江省| 巴马| 图片| 红桥区| 旌德县| 蓬安县| 南郑县| 汪清县| 卢龙县| 屏山县| 陵川县| 南岸区| 卢氏县| 新乡市| 额敏县| 绥江县| 盐山县| 康马县| 凤台县| 梅州市| 平潭县|