九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

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

開(kāi)通VIP
入門(mén)numpy(25﹪-50﹪)【解讀numpy官方文檔】

作者:王大偉

博客專(zhuān)欄:https://www.hellobi.com/u/wangdawei/articles

Python愛(ài)好者社區(qū)  唯一小編 

前言

最近在學(xué)習(xí)入門(mén)python可視化,先后初步探索了seaborn、matplotlib、plotly和ggplot

發(fā)現(xiàn)還是pandas的繪圖最容易上手,樣式也很商務(wù)化,學(xué)完官方文檔之后和大家一起分享

言歸正傳,今天繼續(xù)連載numpy入門(mén)系列

前文傳送門(mén):https://ask.hellobi.com/blog/wangdawei/8708

基本操作

當(dāng)使用不同類(lèi)型的數(shù)組時(shí),結(jié)果得到的數(shù)組的類(lèi)型對(duì)應(yīng)于更一般或精確的數(shù)組(稱(chēng)為upcasting的行為)。

import numpy as np
from numpy import pi

注:從numpy中導(dǎo)入pi(π)


a = np.ones(3, dtype=np.int32)
a


注:創(chuàng)建一個(gè)一行三列的矩陣(元素都是1)


b = np.linspace(0,pi,3)
b.dtype.name


注:在0-π之間均勻產(chǎn)生三個(gè)等間隔的數(shù)字,b的類(lèi)型是浮點(diǎn)型


c = a b
c


c.dtype.name


注:得到的c的類(lèi)型為浮點(diǎn)型


d = np.exp(c*1j)
d


d.dtype.name


注:得到的是復(fù)數(shù)


許多一元操作,例如計(jì)算數(shù)組中所有元素的總和,都被實(shí)現(xiàn)為ndarray類(lèi)的方法

a = np.random.random((2,3))
a


注:產(chǎn)生2行3列的隨機(jī)數(shù)組(元素值為0-1之間的隨機(jī)數(shù))


a.sum()


注:將a數(shù)組所有元素求和


a.min()


注:返回a數(shù)組中最小的元素值


a.max()


注:返回a數(shù)組中的最大值

注意:我們看到的數(shù)組和單獨(dú)取出的最大值保留的小數(shù)位數(shù)不同


默認(rèn)情況下,這些操作適用于數(shù)組,就像它是數(shù)字列表一樣,不管其形狀如何。 但是,通過(guò)指定軸參數(shù),您可以沿著數(shù)組的指定軸應(yīng)用一個(gè)操作:

b = np.arange(12).reshape(3,4)
b


注:通過(guò)reshape將產(chǎn)生的1行的數(shù)組轉(zhuǎn)變?yōu)?行4列


b.sum(axis=0)


注:將每一列求和,因?yàn)橹付藚?shù)axis = 0 


b.sum(axis=1)


注:按行求和


b.sum()


注:不加axis參數(shù)則是所有元素求和


b.min(axis=1)


注:求每行的最小值


b.cumsum(axis=1)


注:要學(xué)會(huì)自己查幫助文件

?b.cumsum(axis=1)


是返回沿給定軸的元素的累加和

這是什么意思呢?畫(huà)個(gè)圖很好理解:


就是把前面所有的加上自己當(dāng)前的值得到的結(jié)果放在當(dāng)前位置,就是數(shù)列前n項(xiàng)累加和的意思

注意這里是按行累加


通用功能

NumPy提供熟悉的數(shù)學(xué)函數(shù),如sin,cos和exp。 在NumPy中,這些被稱(chēng)為“通用函數(shù)”(ufunc)。 在NumPy中,這些函數(shù)在數(shù)組上以元素方式運(yùn)算,產(chǎn)生一個(gè)數(shù)組作為輸出。

B = np.arange(3)
B


注:創(chuàng)建一個(gè)數(shù)組


np.exp(B)


注:對(duì)每個(gè)元素求e的某次方


np.sqrt(B)


注:對(duì)每個(gè)元素開(kāi)方


C = np.array([2., -1., 4.])
np.add(B, C)


注:將兩個(gè)數(shù)組相加(要求數(shù)組形狀相同)

如果形狀不同,則會(huì)報(bào)錯(cuò)如下:


查看這部分更多更詳細(xì)的用法可以看:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

下圖部分:



索引,切片和迭代

一維數(shù)組可以被索引,切片和迭代,非常像列表和其他Python序列。

a = np.arange(10)**3
a


注:對(duì)數(shù)組中每個(gè)元素求3次方


a[2]


注:取出序列為2的元素


a[2:5]


注:切片操作


a[:6:2] = -1000    
a


注: 和 a[0:6:2] = -1000相同; 從最初到序列號(hào)6(6取不到),步長(zhǎng)為2,將-1000賦值相應(yīng)的元素。


a[ : :-1]


注:數(shù)組元素逆序排列


for i in a:
    print(i**(1/3.))


注:對(duì)a數(shù)組中每個(gè)元素,求1/3次方

結(jié)果是nan的我有些不解,-10的3次方不是-1000么

于是我試了試:


希望有了解的大神留言評(píng)論指導(dǎo)一下,這個(gè)nan暫時(shí)跳過(guò)吧


多維數(shù)組每條軸可以有一個(gè)索引。 這些索引以逗號(hào)分隔的元組給出:

def f(x,y):
   return 10*x y

注:定義一個(gè)函數(shù),參數(shù)有兩個(gè):x,y

b = np.fromfunction(f,(5,4),dtype=int)
b


注:我們看一下幫助:

?np.fromfunction

指的是,建立5行4列的數(shù)組,然后對(duì)每個(gè)位置元素(i,j)索引代表位置,例如(2,3)位置時(shí),

計(jì)算函數(shù)值10*2 3=13,所以返回13,其他同理。


b[2,3]


注:我們可以取出數(shù)組中的元素值,注意行和列索引是用逗號(hào)分隔,而不是冒號(hào)(冒號(hào)是切片)


b[0:5, 1]


注:按照下標(biāo)索引切片


b[ : ,1]


注:按照下標(biāo)索引切片


b[1:3, : ]


注:按照下標(biāo)索引切片


b[-1]


注:這個(gè)相當(dāng)于b[-1,:]


一些省略記法:

例如五維的數(shù)組:

  • x[1,2,...]與 x[1,2,:,:,:]等價(jià)

  • x[...,3] 與 x[:,:,:,:,3] 等價(jià)

  • x[4,...,5,:] 與 x[4,:,:,5,:]等價(jià)

c = np.array( [[[  0,  1,  2],
               [ 10, 12, 13]],
             [[100,101,102],
               [110,112,113]]])
c.shape


注:這是一個(gè)三維數(shù)組,并顯示行、列、高的信息


c[1,...]


注:等同于c[1,:,:] 或c[1],有點(diǎn)像切蛋糕的感覺(jué),切出一片二維的。


c[...,2]


注:等同于c[:,:,2]、


相對(duì)于第一軸完成多維數(shù)組迭代:

for row in b:
    print(row)


注:有點(diǎn)像三位數(shù)組降維成多個(gè)一維的感覺(jué)


但是,如果要對(duì)數(shù)組中的每個(gè)元素執(zhí)行操作,可以使用flat屬性,該屬性是數(shù)組的所有元素的迭代器:

for element in b.flat:
    print(element)


注:這是取出多維數(shù)組中所有元素的一個(gè)不錯(cuò)方法


查看這部分更多更詳細(xì)的用法可以看:https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

下圖部分:


對(duì)形狀操作

改變數(shù)組的形狀

a = np.floor(10*np.random.random((3,4)))
a


注:通過(guò)?np.floor()

我們只到,該方法是向下取整的意思

例如:

num = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
np.floor(num)


向下取整就是指一個(gè)數(shù)字往減小的方向取到最近的值,例如上面例子的-1.7變成-2.0

所以這是產(chǎn)生隨機(jī)整數(shù)的方法,但這里的數(shù)字是float不是int類(lèi)型


可以通過(guò)各種命令改變陣列的形狀。 請(qǐng)注意,以下三個(gè)命令都返回一個(gè)修改的新數(shù)組,不更改原始數(shù)組:

a.ravel()


注:將數(shù)組改成一維


a.reshape(6,2)


注:將數(shù)組轉(zhuǎn)化為指定形狀


a.T


注:數(shù)組轉(zhuǎn)置,和矩陣轉(zhuǎn)置一樣理解


a.T.shape


矩陣轉(zhuǎn)置之后的形狀


a.shape


注:原來(lái)矩陣的形狀

至此,numpy入門(mén)完成了一半,還有兩篇完結(jié),之后咱寫(xiě)可視化吧,哈哈~

未完待續(xù)~近期更新~謝謝觀賞~希望對(duì)你學(xué)習(xí)有幫助~

關(guān)注公眾號(hào),“Python愛(ài)好者社區(qū)”,回復(fù)“爬蟲(chóng)”即可獲取崔老師爬蟲(chóng)免費(fèi)學(xué)習(xí)視頻。


Python愛(ài)好者社區(qū)


為大家提供與Python相關(guān)的最新技術(shù)和資訊。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
numpy 簡(jiǎn)介
《Python數(shù)據(jù)分析常用手冊(cè)》一、NumPy和Pandas篇
最新Python學(xué)習(xí)教程(Python學(xué)習(xí)路線):Numpy常用用法總結(jié)
numpy中的ndarray方法和屬性
Python 數(shù)據(jù)操作教程:NUMPY 教程與練習(xí)
技術(shù)圖文:NumPy 的簡(jiǎn)單入門(mén)教程
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服