操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    i,大家好。

    我們?cè)谌粘9ぷ髦校瑫?huì)用Excel來(lái)進(jìn)行數(shù)據(jù)分析,尤其是數(shù)值處理。今天我們來(lái)分享一下Excel中都有哪些最常用的數(shù)值處理函數(shù)。這里面包括了常用的四舍五入、向上向下取整、奇偶判斷、絕對(duì)值;中值、眾數(shù)、隨機(jī)數(shù)、組合數(shù)等。另外,這些函數(shù)看似簡(jiǎn)單,但是也有些需要主要的地方。同時(shí),有些函數(shù)會(huì)有意想不到的用法。可以說(shuō),本文將總結(jié)數(shù)值類處理函數(shù)的常用用法,掌握它們將使得我們更為全面地理解Excel的函數(shù),提升工作效率。

    1.round函數(shù)

    round英文本意是圓的,整數(shù)的,因此在Excel中用于對(duì)數(shù)據(jù)進(jìn)行指定位數(shù)的四舍五入。

    語(yǔ)法:=round(數(shù)值,四舍五入的位數(shù))

    =ROUND(number,num_digits)

    說(shuō)明:四舍五入位數(shù)為0時(shí),進(jìn)行取整四舍五入;位數(shù)為正時(shí),表示在小數(shù)點(diǎn)右邊保留小數(shù)多少位進(jìn)行四舍五入;位數(shù)為負(fù)時(shí),表示在小數(shù)點(diǎn)左邊進(jìn)行四舍五入(例如整十整百等四舍五入操作)

    • =round(9.9876,2),返回9.99
    • =round(7894.002,-1),返回7890

    注意點(diǎn):當(dāng)四舍五入位數(shù)為負(fù)時(shí)的特殊作用,這種用法可以對(duì)一些預(yù)測(cè)的數(shù)據(jù)進(jìn)行取整十整百等的處理。

    2.int函數(shù)

    Int是integer的縮寫,表示整數(shù)的意思,因此int會(huì)對(duì)數(shù)值進(jìn)行向下的取整處理,即取值的結(jié)果不大于原來(lái)的數(shù)值

    語(yǔ)法:=int(數(shù)值),=int()

    說(shuō)明:

    • =int(3.45),返回3
    • =int(-3.45),返回-4

    注意點(diǎn):向下取整,尤其是負(fù)數(shù)是的結(jié)果需要理解一下。

    3.rounddown函數(shù)

    Round+down,向下指定位數(shù)舍入。

    語(yǔ)法:=rounddown(數(shù)值,舍入后的數(shù)值位數(shù))

    說(shuō)明:

    注意點(diǎn):注意當(dāng)舍入位數(shù)為0時(shí),與int函數(shù)返回結(jié)果的區(qū)別,尤其是值為負(fù)值時(shí)。

    4.roundup函數(shù)

    Round+up,向上指定位數(shù)舍入。

    語(yǔ)法:=roundup(數(shù)值,舍入后的數(shù)值位數(shù))

    說(shuō)明:roundup與rounddown相對(duì)應(yīng),一個(gè)是向下,一個(gè)向上。

    注意點(diǎn):roundup和rounddown函數(shù)與是否負(fù)數(shù)無(wú)關(guān),都是按照正數(shù)的方式進(jìn)行指定位數(shù)舍入。

    5.ceiling函數(shù)

    Ceiling是天花板,函數(shù)意思是按基數(shù)進(jìn)行指定倍數(shù)的向上舍入。

    語(yǔ)法:=CEILING(數(shù)值, 基數(shù)),=CEILING(number,significance)

    • Number 必需。要舍入的值。
    • significance 必需。要舍入到的倍數(shù)。

    說(shuō)明:函數(shù)的處理機(jī)制是用數(shù)值除以基數(shù)得到一個(gè)倍數(shù),然后將倍數(shù)向上取整,取整后再乘以基數(shù)得到最終結(jié)果。

    =ceiling(8,3),返回結(jié)果9。首先8/3=2.666..,倍數(shù)取整后得到3,向上取整倍數(shù)3乘以基數(shù)3得到結(jié)果9。

    注意點(diǎn):和int類似,注意負(fù)數(shù)時(shí)的函數(shù)執(zhí)行情況。如果除出來(lái)的倍數(shù)是負(fù)數(shù),向上取整就是向0的方向取整。-2.3取整后就是-2。

    6.floor函數(shù)

    floor是地板的意思,函數(shù)意思是按基數(shù)進(jìn)行指定倍數(shù)的向下舍入。

    語(yǔ)法:=floor(數(shù)值, 基數(shù)),=floor(number,significance)

    • Number 必需。要舍入的值。
    • significance 必需。要舍入到的倍數(shù)。

    說(shuō)明:函數(shù)的處理機(jī)制是用數(shù)值除以基數(shù)得到一個(gè)倍數(shù),然后將倍數(shù)向下取整,取整后再乘以基數(shù)得到最終結(jié)果。

    =floor(8,3),返回結(jié)果6。首先8/3=2.666..,倍數(shù)取整后得到2,向上取整倍數(shù)2乘以基數(shù)3得到結(jié)果6。

    注意點(diǎn):和int類似,注意負(fù)數(shù)時(shí)的函數(shù)執(zhí)行情況。如果除出來(lái)的倍數(shù)是負(fù)數(shù),向下取整就是逆向0的方向取整。-2.66取整后就是-3。

    Floor和Ceiling函數(shù),在新的Excel版本中提供了另外兩個(gè)函數(shù):floor.math和ceiling.math的兩個(gè)升級(jí)函數(shù),兩個(gè)函數(shù)都新增了一個(gè)mode參數(shù),用于控制當(dāng)數(shù)值為負(fù)數(shù)時(shí),控制舍入的方向,朝0或反向0的方向進(jìn)行舍入。

    7.abs函數(shù)

    Abs函數(shù)就是對(duì)數(shù)值進(jìn)行絕對(duì)值取值

    語(yǔ)法:=abs(數(shù)值)

    說(shuō)明:

    • =abs(-2),返回結(jié)果2
    • =abs(2),返回結(jié)果2

    8.rand函數(shù)

    rand,random的縮寫,隨機(jī)的意思,函數(shù)會(huì)參數(shù)一個(gè)0-1的隨機(jī)數(shù)。

    語(yǔ)法:=rand(),無(wú)參數(shù)

    9.randbetween函數(shù)

    Rand+between,隨機(jī)產(chǎn)生一個(gè)范圍內(nèi)的整數(shù)

    語(yǔ)法:=randbetween(最小整數(shù),最大整數(shù))

    說(shuō)明:

    =randbetween(1,100),返回1到100的隨機(jī)整數(shù)

    注意點(diǎn):

    那么產(chǎn)生1-100的隨機(jī)數(shù)怎么辦?=randbetween(1,100)+rand()

    10.trunc函數(shù)

    Trunc函數(shù)用于將數(shù)字的小數(shù)部分截去,返回整數(shù)。或者我們也可以指定保留幾位小數(shù),超出部分會(huì)被截去。

    這個(gè)函數(shù)類似于rounddown函數(shù)

    語(yǔ)法:=trunc(數(shù)值,[保留位數(shù)]),當(dāng)取整時(shí),可以不寫保留位數(shù)。

    注意點(diǎn):這個(gè)函數(shù)只是截取函數(shù),本身不做任何方向的舍入。

    11.isodd 和 iseven函數(shù)

    Is+odd,表示是否是基數(shù),同理is+even表是否是偶數(shù)。

    語(yǔ)法:=isood(數(shù)值),=iseven(數(shù)值)。由于是判斷函數(shù),兩個(gè)函數(shù)都返回True 或者False。

    注意點(diǎn):可以外層用if,內(nèi)部判斷條件用這兩個(gè)函數(shù)來(lái)進(jìn)行判斷,并顯示奇數(shù)或者偶數(shù)。這兩個(gè)函數(shù)也有其它的替代的處理方式,比如用mod進(jìn)行求余處理。

    12. mod函數(shù)

    Mod函數(shù)用于求余數(shù)。

    語(yǔ)法:=mod(被除數(shù),除數(shù)),返回兩者的余數(shù)。

    注意點(diǎn):

    Mod本身是用于求余數(shù),但是我們用一個(gè)遞增的整數(shù)去除以一個(gè)固定的數(shù),就會(huì)得到一組循環(huán)的遞增的余數(shù)。

    例如,我們用mod(row(),3)就會(huì)循環(huán)得到0,1,2的余數(shù)。假定我們需要每隔2行進(jìn)行單元格底色填充,我們就可以用條件格式進(jìn)行設(shè)置。當(dāng)條件格式的公式mod(row(),3)=2時(shí),則填充底色。可以嘗試一下,這是一種非常有趣的用法。

    13. MEDAIN函數(shù)

    中位數(shù)函數(shù),用于求一組數(shù)中的中位數(shù)

    語(yǔ)法:=medain(數(shù)值1, [數(shù)值2], ...)

    說(shuō)明:

    假設(shè)A1:A6單元格的值分別是1,2,3,4,5,6

    那么=median(A1:A6),返回值為3.5。因?yàn)楫?dāng)數(shù)據(jù)系列是偶數(shù)個(gè)時(shí),中位數(shù)會(huì)取順序排列的中間兩個(gè)數(shù)據(jù)的均值,即本例中的(3+4)/2=3.5

    注意點(diǎn):

    Median函數(shù)可以有其它一些擴(kuò)展用法。

    例如:

    假設(shè)我們有一組考試成績(jī)的數(shù)值,要求是低于60分的按60分計(jì),高于100分的按100分計(jì),60-100分的維持原狀。

    一般做法肯定是用if進(jìn)行嵌套處理。假設(shè)A2是存放的分值數(shù)據(jù),則判斷公式:=if(A2<60,60,if(A2>100,100,A2))。這里用到了2層判斷。

    但是這里我們也可以用medain函數(shù)進(jìn)行處理,即公式:=median(A2,60,100)

    邏輯上我們來(lái)理清一下:

    • 若A2<60,那么三個(gè)數(shù)的排序就是A2,60,100,自然中位數(shù)就是60,公式返回結(jié)果60;
    • 若A2在60-100間,則排序順序就是60,A2,100,自然中位數(shù)就是A2,公式返回結(jié)果A2的值,就是其本身;
    • 若A2>100,則排序順序就是60,100,A2,自然中位數(shù)就是100,公式返回結(jié)果100。

    靈活使用這些數(shù)值函數(shù),將會(huì)大大提高我們的數(shù)值數(shù)據(jù)處理效率。

    以上,是今日分享的內(nèi)容。

    我是華哥。每日精進(jìn),不負(fù)光陰韶華。

    贈(zèng)人玫瑰,手留余香。歡迎評(píng)論、點(diǎn)贊、關(guān)注,轉(zhuǎn)發(fā)。

    在當(dāng)下 AI 迅猛發(fā)展的時(shí)期,Python 憑借其簡(jiǎn)潔易讀的語(yǔ)法以及強(qiáng)大的表現(xiàn)力,深受程序員與科學(xué)家的青睞。本文旨在展示 Python 僅用 10 行代碼便能完成復(fù)雜數(shù)學(xué)運(yùn)算的強(qiáng)大能力,涵蓋向量加法、點(diǎn)積、矩陣乘法、矩陣轉(zhuǎn)置以及線性系統(tǒng)求解器等諸多方面。



    回想最初使用 Python 時(shí),NumPy 或 SymPy 尚未出現(xiàn)。那時(shí),研究常借助 MatLab,快速原型設(shè)計(jì)依賴 Delphi……甚至還會(huì)在 Prolog 中進(jìn)行符號(hào)計(jì)算。那時(shí)的 Python 類似優(yōu)化版的 Perl,但并非研究人員的首選。



    不過(guò),用它編寫程序頗具趣味,我因而選擇以 Python 來(lái)實(shí)現(xiàn)論文中的部分實(shí)驗(yàn),其中涉及一些線性代數(shù)的內(nèi)容。起初,我采用類似 Pascal 風(fēng)格的嵌套循環(huán)程序,感覺較為枯燥,然而隨著對(duì) Python 研究的深入,有趣的一面逐漸展現(xiàn)。



    某一時(shí)刻,我察覺到這門語(yǔ)言絕非僅能編寫嵌套循環(huán),于是開始更深入地探索,而非局限于論文所需——這或許是我所做的最佳“錯(cuò)誤”決定。



    Python 以其友好的學(xué)習(xí)曲線著稱,但這也可能帶來(lái)問(wèn)題。您可以用 Python 編寫類似 Pascal、C++ 或 Lisp 的程序,但只有以 Python 特有的方式編寫,方能充分發(fā)揮其優(yōu)勢(shì)。



    好在,即便僅掌握 Python 的基礎(chǔ)知識(shí),可能會(huì)錯(cuò)失精彩部分,但用戶體驗(yàn)依然良好。



    為闡釋這一點(diǎn),我選取了線性代數(shù)領(lǐng)域。按理說(shuō),Python 有眾多出色的庫(kù)可處理線性代數(shù),因此無(wú)需重新實(shí)現(xiàn)文中提及的內(nèi)容。而我選擇線性代數(shù),旨在證明 Python 中以少量代碼表達(dá)豐富含義的語(yǔ)法是完全可行的(免責(zé)聲明:為保證可讀性,部分代碼示例未嚴(yán)格限制在一行內(nèi),示例中的所有縮進(jìn)純粹是為了提升閱讀體驗(yàn))。



    1. 列表解析
      列表解析是 Python 單行代碼的精髓所在,它是一種用于描述列表轉(zhuǎn)換的特殊語(yǔ)法。例如,若要將一個(gè)向量乘以一個(gè)標(biāo)量,在類似 Pascal 的 Python 代碼中,可能會(huì)這樣書寫:



    def scaled(A, x):
        B=list()
        for i in range(len(A)):
            B.append( A[i] * x )
        return B
    



    這種寫法雖無(wú)過(guò)錯(cuò),也有其優(yōu)點(diǎn),例如總能找到一行設(shè)置斷點(diǎn),但確實(shí)顯得有些“冗長(zhǎng)”。在 Python 中,您可以簡(jiǎn)潔地寫成:


    def scaled(A, x): return [ai*x for ai in A]
    



    然后其運(yùn)行效果如下:


    List comprehension
    
        [1.0, 4.0, 3.0]
    * 2.0
        [,...
    Step 1
    
        [1.0, 4.0, 3.0]
         * 2.0
        [2.0,...
    Step 2
    
        [1.0, 4.0, 3.0]
              * 2.0
        [2.0, 8.0,...
    Step 3
    
        [1.0, 4.0, 3.0]
                   * 2.0
        [2.0, 8.0, 6.0]
    



    不過(guò),列表解析并非 Python 所獨(dú)有,Haskell 和 Clojure 也具備類似功能,甚至 C# 的 LINQ 也為范圍提供了特殊語(yǔ)法。鮮為人知的是,Python 還支持字典解析和元組解析。



    >>> [2*v for v in [1.0, 2.0, 3.0]]
    [2.0, 4.0, 6.0]
    
    >>> {k:2*v for k, v in {0:1.0, 1:4.0, 2:3.0}.items()}
    {0: 2.0, 1: 8.0, 2: 6.0}
    
    >>> tuple(2*v for v in (1.0, 4.0, 3.0))
    (2.0, 8.0, 6.0)
    



    1. 列表壓縮
      列表壓縮能夠?qū)⒍鄠€(gè)可迭代對(duì)象作為一個(gè)整體進(jìn)行迭代,并將所有對(duì)象轉(zhuǎn)換為一個(gè)元組列表。盡管標(biāo)題提及“列表”,但它同樣適用于元組、字典、生成器等任何可迭代的對(duì)象。



    >>> A=[1, 2, 3]
    >>> B=('a', 'b', 'c')
    >>> C={1:'a', 2:'b', 3:'c'}
    >>> D=xrange(123)
    >>> zip(A, B, C, D)
    
    [(1, 'a', 1, 0), (2, 'b', 2, 1), (3, 'c', 3, 2)]
    



    同樣,您可以用一行代碼實(shí)現(xiàn)向量加法。



    def sum_of(A, B): return [ai+bi for (ai, bi) in zip(A, B)]
    



    對(duì)于兩組列表,這能夠如同拉鏈一般將數(shù)據(jù)壓縮在一起。



    List zipping
    
        A=[1.0, 4.0, 3.0]
        B=[7.0, 3.0, 1.0]
    zip(A, B)=[...
    Step 1
    
             A=[1.0, 4.0, 3.0]
             B=[7.0, 3.0, 1.0]
    zip(A, B)=[(1.0, 7.0),...
    Step 2
    
                    A=[1.0, 4.0, 3.0]
                    B=[7.0, 3.0, 1.0]
    zip(A, B)=[(1.0, 7.0), (4.0, 3.0),...
    Step 3
    
                           A=[1.0, 4.0, 3.0]
                           B=[7.0, 3.0, 1.0]
    zip(A, B)=[(1.0, 7.0), (4.0, 3.0), (3.0, 1.0)]
    



    1. 求和函數(shù)
      求和函數(shù)能夠進(jìn)行簡(jiǎn)單的求和操作。您可以通過(guò)累積向量元素的乘積,用一行代碼實(shí)現(xiàn)向量點(diǎn)積。



    def dot_of(A, B): return sum([ai*bi for (ai, bi) in zip(A, B)])
    



    然而,有時(shí)簡(jiǎn)單的求和并不足夠。例如在處理浮點(diǎn)數(shù)時(shí),可能會(huì)遭遇一些惱人的小誤差。為了更加便利,Python 提供了另一個(gè)求和函數(shù),能夠?qū)Σ糠智蠛瓦M(jìn)行操作,從而獲取更精確的輸出。



    >>> [0.1]*10
    [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
    
    >>> sum([0.1]*10)
    0.9999999999999999
    
    >>> import math
    >>> math.fsum([0.1]*10)
    1.0
    



    1. 條件表達(dá)式
      條件表達(dá)式是 Python 中的三元運(yùn)算符,是依賴于條件的表達(dá)式,通常也是簡(jiǎn)單純粹的表達(dá)式。我們能夠用條件表達(dá)式來(lái)構(gòu)建一個(gè)單位矩陣。



    def identity(n):
        return [[1.0 if i==j else 0.0
                for j in range(n)]
            for i in range(n)]
    



    這實(shí)際上是一個(gè)包含條件表達(dá)式的嵌套列表解析,結(jié)果如下:



    Conditional expression: 0==0
    
      j=0
    [[1.0,...            i=0
    Conditional expression: 1!=0
    
           j=1
    [[1.0, 0.0,...       i=0
    Conditional expression: 2!=0
    
                j=2
    [[1.0, 0.0, 0.0],... i=0
    Conditional expression: 0!=1
    
      j=0
    [[1.0, 0.0, 0.0],
     [0.0,...            i=1
    Conditional expression: 1==1
    
           j=1
    [[1.0, 0.0, 0.0],
     [0.0, 1.0,...       i=1
    Conditional expression: 2!=1
    
                j=2
    [[1.0, 0.0, 0.0],
     [0.0, 1.0, 0.0],... i=1
    Conditional expression: 0!=2
    
      j=0
    [[1.0, 0.0, 0.0],
     [0.0, 1.0, 0.0],
     [0.0,...            i=2
    Conditional expression: 1!=2
    
           j=1
    [[1.0, 0.0, 0.0],
     [0.0, 1.0, 0.0],
     [0.0, 0.0,...       i=2
    Conditional expression: 2==2
    
          j=2
    [[1.0, 0.0, 0.0],
     [0.0, 1.0, 0.0],
     [0.0, 0.0, 1.0]]     i=2
    



    條件表達(dá)式在簡(jiǎn)潔性和表達(dá)力方面表現(xiàn)出色,但由于它們是表達(dá)式,所以不易添加副作用。但并非完全不可能,只是需要一些技巧。在 Python 中,元組計(jì)算會(huì)從左到右依次計(jì)算每個(gè)元組元素,所以當(dāng)您需要在表達(dá)式中添加更多內(nèi)容時(shí),只需使用元組即可。



    def identity(n):
        return [[1.0 if i==j else (0.0,
                                   sys.stdout.write("i!=j\n")
                                  )[0]
                for j in range(n)]
            for i in range(n)]
    



    您也不能在表達(dá)式中使用 print,因?yàn)樗鼈儾粦?yīng)具有副作用,但可以使用 sys.stdout.write。



    def identity(n):
        return [[1.0 if i==j else (0.0,
                                   sys.stdout.write("i!=j\n")
                                  )[0]
                for j in range(n)]
            for i in range(n)]
    



    同樣的技巧也適用于 lambda 表達(dá)式,您可以通過(guò)元組讓您的 lambda 表達(dá)式盡可能復(fù)雜。不過(guò)建議若非必要,請(qǐng)勿如此操作。



    我猜測(cè)肯定會(huì)有人反駁說(shuō),“您的例子根本無(wú)需條件表達(dá)式!”的確如此。在 Python 中,您可以顯式地將布爾類型變量轉(zhuǎn)換為浮點(diǎn)數(shù)變量。



    def identity(n):
        return [[float(i==j) for j in range(n)] for i in range(n)]
    



    這只是風(fēng)格問(wèn)題。就個(gè)人而言,我更傾向于將事實(shí)和數(shù)字分開,不這樣做也完全可行。



    1. 將容器內(nèi)容作為參數(shù)傳遞
      假設(shè)在 Python 中我們有一個(gè)矩陣,以列表形式表示,其中每個(gè)嵌套列表是一行。若將這些行傳遞給前面提到的 zip,它會(huì)生成一個(gè)元組列表,其中每個(gè)元組代表矩陣的一列。如此一來(lái),我們便得到了一個(gè)現(xiàn)成的矩陣轉(zhuǎn)置。



    不過(guò),我們還需解決兩個(gè)問(wèn)題。一個(gè)較為簡(jiǎn)單:我們期望矩陣是一個(gè)列表,而非元組,所以需要通過(guò)一個(gè)簡(jiǎn)單的列表解析來(lái)解決。另一個(gè)問(wèn)題則需使用特殊的 Python 語(yǔ)法,它能讓我們將列表轉(zhuǎn)變?yōu)楹瘮?shù)參數(shù)的元組,此語(yǔ)法便是在矩陣前添加一個(gè)星號(hào)。



    def transposed(A): return [list(aj) for aj in zip(*A)]
    


    領(lǐng)取方式:私信回復(fù)666,免費(fèi)領(lǐng)取資料軟件~

網(wǎng)站首頁(yè)   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號(hào):冀ICP備2024067069號(hào)-3 北京科技有限公司版權(quán)所有