干貨」一文帶你了解——清晰易懂的Numpy入門(mén)教程

Numpy是python語(yǔ)言中最基礎(chǔ)和最強(qiáng)大的科學(xué)計(jì)算和數(shù)據(jù)處理的工具包,如數(shù)據(jù)分析工具pandas也是基于numpy構(gòu)建的锯茄,機(jī)器學(xué)習(xí)包scikit-learn也大量使用了numpy方法。本文介紹了Numpy的n維數(shù)組在數(shù)據(jù)處理和分析的所有核心應(yīng)用。

目錄

1. 如何構(gòu)建numpy數(shù)組

2.如何觀察數(shù)組屬性的大小和形狀(shape)

3.如何從數(shù)組提取特定的項(xiàng)

4.如何從現(xiàn)有的數(shù)組定義新數(shù)組

5.多維數(shù)組的重構(gòu)(reshaping)和扁平(flattening)

6.如何通過(guò)numpy生成序列數(shù)(sequences),重復(fù)數(shù)(repetitions)和隨機(jī)數(shù)(random)

7. 小結(jié)

1. 如何構(gòu)建numpy數(shù)組

構(gòu)建numpy數(shù)組的方法很多肚医,比較常用的方法是用np.array函數(shù)對(duì)列表進(jìn)行轉(zhuǎn)化。

# 通過(guò)列表創(chuàng)建一維數(shù)組

importnumpyasnp

list1=[0,1,2,3,4]

arr1d=np.array(list1)

#打印數(shù)組和類型

print(type(arr1d))

arr1d

<type'numpy.ndarray'>

[01234]

數(shù)組和列表最關(guān)鍵的區(qū)別是:數(shù)組是基于向量化操作的向瓷,列表不是肠套,我們?cè)趯?shí)際項(xiàng)目中處理的數(shù)據(jù)一般是矩陣結(jié)構(gòu),對(duì)該數(shù)據(jù)以行向量或列向量的形式進(jìn)行計(jì)算猖任,向量計(jì)算是基于數(shù)組實(shí)現(xiàn)的你稚,因此數(shù)組比列表的應(yīng)用更廣。

函數(shù)可以應(yīng)用到數(shù)組的每一項(xiàng)朱躺,列表不行刁赖。

比如,不可以對(duì)列表的每一項(xiàng)數(shù)據(jù)都加2长搀,這是錯(cuò)誤的宇弛。

list1+2# 錯(cuò)誤

可以對(duì)數(shù)組的某一項(xiàng)數(shù)據(jù)都加2

# Add 2 to each element of arr1d

arr1d+2

#> array([2, 3, 4, 5, 6])

另一個(gè)區(qū)別是已經(jīng)定義的numpy數(shù)組不可以增加數(shù)組大小,只能通過(guò)定義另一個(gè)數(shù)組來(lái)實(shí)現(xiàn)源请,但是列表可以增加大小枪芒。

然而彻况,numpy有更多的優(yōu)勢(shì),讓我們一起來(lái)發(fā)現(xiàn)舅踪。

numpy可以通過(guò)列表中的列表來(lái)構(gòu)建二維數(shù)組纽甘。

# Create a 2d array from a list of lists

list2=[[0,1,2],[3,4,5],[6,7,8]]

arr2d=np.array(list2)

arr2d

#> array([[0, 1, 2],

#>? ? ? ? [3, 4, 5],

#>? ? ? ? [6, 7, 8]])

你也可以通過(guò)dtype參數(shù)指定數(shù)組的類型,一些最常用的numpy類型是:'float'硫朦,'int'贷腕,'bool','str'和'object'咬展。

# Create a float 2d array

arr2d_f=np.array(list2,dtype='float')

arr2d_f

#> array([[ 0.,? 1.,? 2.],

#>? ? ? ? [ 3.,? 4.,? 5.],

#>? ? ? ? [ 6.,? 7.,? 8.]])

輸出結(jié)果的小數(shù)點(diǎn)表示float類型,你也可以通過(guò) astype方法轉(zhuǎn)換成不同的類型瞒斩。

# 轉(zhuǎn)換成‘int’類型

arr2d_f.astype('int')

#> array([[0, 1, 2],

#>? ? ? ? [3, 4, 5],

#>? ? ? ? [6, 7, 8]])

# 先轉(zhuǎn)換‘int’類型破婆,再轉(zhuǎn)換‘str’類型

arr2d_f.astype('int').astype('str')

#> array([['0', '1', '2'],

#>? ? ? ? ['3', '4', '5'],

#>? ? ? ? ['6', '7', '8']],

#>? ? ? dtype='U21')

另一個(gè)區(qū)別是數(shù)組要求所有項(xiàng)是同一個(gè)類型,list沒(méi)有這個(gè)限制胸囱。如果你想要一個(gè)數(shù)組包含不同類型祷舀,設(shè)置‘dtype’為'object'。

# 構(gòu)建布爾類型數(shù)組

arr2d_b=np.array([1,0,10],dtype='bool')

arr2d_b

#> array([ True, False,? True], dtype=bool)

# 構(gòu)建包含數(shù)值和字符串的數(shù)組

arr1d_obj=np.array([1,'a'],dtype='object')

arr1d_obj

#> array([1, 'a'], dtype=object)

最終使用 tolist()函數(shù)使數(shù)組轉(zhuǎn)化為列表烹笔。

# Convert an array back to a list

arr1d_obj.tolist()

#> [1, 'a']

總結(jié)數(shù)組和列表主要的區(qū)別:

數(shù)組支持向量化操作裳扯,列表不支持;

數(shù)組不能改變長(zhǎng)度谤职,列表可以饰豺;

數(shù)組的每一項(xiàng)都是同一類型,list可以有多種類型允蜈;

同樣長(zhǎng)度的數(shù)組所占的空間小于列表冤吨;

2. 如何觀察數(shù)組屬性的大小和形狀(shape)

一維數(shù)組由列表構(gòu)建,二維數(shù)組arr2d由列表的列表構(gòu)建饶套,二維數(shù)組有行和列漩蟆,比如矩陣,三維數(shù)組由嵌入了兩個(gè)列表的列表構(gòu)建妓蛮。

假設(shè)給定一個(gè)數(shù)組怠李,我們?cè)趺慈チ私庠摂?shù)組的屬性。

數(shù)組的屬性包括:

數(shù)組的維度(ndim)

數(shù)組的形狀(shape)

數(shù)組的類型(dtype)

數(shù)組的大懈蚩恕(size)

數(shù)組元素的表示(通過(guò)索引)

# 定義3行4列的二維數(shù)組

list2=[[1,2,3,4],[3,4,5,6],[5,6,7,8]]

arr2=np.array(list2,dtype='float')

arr2

#> array([[ 1.,? 2.,? 3.,? 4.],

#>? ? ? ? [ 3.,? 4.,? 5.,? 6.],

#>? ? ? ? [ 5.,? 6.,? 7.,? 8.]])

# 形狀(shape)

print('Shape: ',arr2.shape)

# 數(shù)組類型(dtype)

print('Datatype: ',arr2.dtype)

# 數(shù)組大修囫(size)

print('Size: ',arr2.size)

# 數(shù)組維度(ndim)

print('Num Dimensions: ',arr2.ndim)

# 取數(shù)組第3行3列元素

print('items of 3 line 3 column: ',c[2,2])

#> Shape:? (3, 4)

#> Datatype:? float64

#> Size:? 12

#> Num Dimensions:? 2

#> items of 3 line 3 column:? 7

3. 如何從數(shù)組提取特定的項(xiàng)

數(shù)組的索引是從0開(kāi)始計(jì)數(shù)的,與list類似咖耘。numpy數(shù)組通過(guò)方括號(hào)的參數(shù)以選擇特定的元素翘簇。

# 選擇矩陣的前兩行兩列

arr2[:2,:2]

list2[:2,:2]# 錯(cuò)誤

#> array([[ 1.,? 2.],

#>? ? ? ? [ 3.,? 4.]])

numpy數(shù)組支持布爾類型的索引,布爾型索引數(shù)組與過(guò)濾前(array-to-be-filtered)的數(shù)組大小相等儿倒,布爾型數(shù)組只包含Ture和False變量版保,Ture變量對(duì)應(yīng)的數(shù)組索引位置保留了過(guò)濾前的值 呜笑。

arr2

#> array([[ 1.,? 2.,? 3.,? 4.],

#>? ? ? ? ? [ 3.,? 4.,? 5.,? 6.],

#>? ? ? ? ? [ 5.,? 6.,? 7.,? 8.]])

# 對(duì)數(shù)組每一個(gè)元素是否滿足某一條件,然后獲得布爾類型的輸出

b=arr2>4

b

#> array([[False, False, False, False],

#>? ? ? ? [False, False,? True,? True],

#>? ? ? ? [ True,? True,? True,? True]], dtype=bool)

# 取布爾型數(shù)組保留的原始數(shù)組的值

arr2[b]

#> array([ 5.,? 6.,? 5.,? 6.,? 7.,? 8.])

3.1 如何反轉(zhuǎn)數(shù)組

# 反轉(zhuǎn)數(shù)組的行

arr2[::-1,]

#> array([[ 5.,? 6.,? 7.,? 8.],

#>? ? ? ? [ 3.,? 4.,? 5.,? 6.],

#>? ? ? ? [ 1.,? 2.,? 3.,? 4.]])

# Reverse the row and column positions

# 反轉(zhuǎn)數(shù)組的行和列

arr2[::-1,::-1]

#> array([[ 8.,? 7.,? 6.,? 5.],

#>? ? ? ? [ 6.,? 5.,? 4.,? 3.],

#>? ? ? ? [ 4.,? 3.,? 2.,? 1.]])

3.2 如何處理數(shù)組的缺失值(missing)和無(wú)窮大(infinite)值

缺失值可以用np.nan對(duì)象表示彻犁,np.inf表示無(wú)窮大值叫胁,下面用二維數(shù)組舉例:

# 插入nan變量和inf變量

arr2[1,1]=np.nan# not a number

arr2[1,2]=np.inf# infinite

arr2

#> array([[? 1.,? 2.,? 3.,? 4.],

#>? ? ? ? [? 3.,? nan,? inf,? 6.],

#>? ? ? ? [? 5.,? 6.,? 7.,? 8.]])

# 用-1代替nan值和inf值

missing_bool=np.isnan(arr2)|np.isinf(arr2)

arr2[missing_bool]=-1

arr2

#> array([[ 1.,? 2.,? 3.,? 4.],

#>? ? ? ? [ 3., -1., -1.,? 6.],

#>? ? ? ? [ 5.,? 6.,? 7.,? 8.]])

3.3 如何計(jì)算n維數(shù)組的平均值,最小值和最大值

# 平均值汞幢,最大值驼鹅,最小值

print("Mean value is: ",arr2.mean())

print("Max value is: ",arr2.max())

print("Min value is: ",arr2.min())

#> Mean value is:? 3.58333333333

#> Max value is:? 8.0

#> Min value is:? -1.0

如果要求數(shù)組的行或列的最小值,使用np.amin函數(shù)

# Row wise and column wise min

# 求數(shù)組行和列的最小值

# axis=0表示列森篷,1表示行

print("Column wise minimum: ",np.amin(arr2,axis=0))

print("Row wise minimum: ",np.amin(arr2,axis=1))

#> Column wise minimum:? [ 1. -1. -1.? 4.]

#> Row wise minimum:? [ 1. -1.? 5.]

對(duì)數(shù)組的每個(gè)元素進(jìn)行累加输钩,得到一維數(shù)組,一維數(shù)組的大小與二維數(shù)組相同仲智。

# 累加

np.cumsum(arr2)

#> array([? 1.,? 3.,? 6.,? 10.,? 13.,? 12.,? 11.,? 17.,? 22.,? 28.,? 35., 43.])

4. 如何從現(xiàn)有的數(shù)組定義新數(shù)組

如果使用賦值運(yùn)算符從父數(shù)組定義新數(shù)組买乃,新數(shù)組與父數(shù)組共占同一個(gè)內(nèi)存空間,如果改變新數(shù)組的值钓辆,那么父數(shù)組也相應(yīng)的改變剪验。

為了讓新數(shù)組與父數(shù)組相互獨(dú)立,你需要使用copy()函數(shù)前联。所有父數(shù)組都使用copy()方法構(gòu)建新數(shù)組功戚。

# Assign portion of arr2 to arr2a. Doesn't really create a new array.

# 分配arr2數(shù)組給新數(shù)組arr2a,下面方法并沒(méi)有定新數(shù)組

arr2a=arr2[:2,:2]

arr2a[:1,:1]=100# arr2相應(yīng)位置也改變了

arr2

#> array([[ 100.,? ? 2.,? ? 3.,? ? 4.],

#>? ? ? ? [? 3.,? -1.,? -1.,? ? 6.],

#>? ? ? ? [? 5.,? ? 6.,? ? 7.,? ? 8.]])

# 賦值arr2數(shù)組的一部分給新數(shù)組arr2b

arr2b=arr2[:2,:2].copy()

arr2b[:1,:1]=101# arr2沒(méi)有改變

arr2

#> array([[ 100.,? ? 2.,? ? 3.,? ? 4.],

#>? ? ? ? [? 3.,? -1.,? -1.,? ? 6.],

#>? ? ? ? [? 5.,? ? 6.,? ? 7.,? ? 8.]])

5. 多維數(shù)組的重構(gòu)(reshaping)和扁平(flattening)

重構(gòu)(reshaping)是改變了數(shù)組項(xiàng)的排列似嗤,即改變了數(shù)組的形狀啸臀,未改變數(shù)組的維數(shù)。

扁平(flattening)是對(duì)多維數(shù)組轉(zhuǎn)化為一維數(shù)組双谆。

# 3x4數(shù)組重構(gòu)為4x3數(shù)組

arr2.reshape(4,3)

#> array([[ 100.,? ? 2.,? ? 3.],

#>? ? ? ? [? 4.,? ? 3.,? -1.],

#>? ? ? ? [? -1.,? ? 6.,? ? 5.],

#>? ? ? ? [? 6.,? ? 7.,? ? 8.]])

5.1 flatten()和ravel()的區(qū)別

數(shù)組的扁平化有兩種常用的方法壳咕,flatten()和ravel() 。flatten處理后的數(shù)組是父數(shù)組的引用顽馋,因此新數(shù)組的任何變化也會(huì)改變父數(shù)組谓厘,因其未用復(fù)制的方式構(gòu)建數(shù)組,內(nèi)存使用效率高寸谜,ravel通過(guò)復(fù)制的方式構(gòu)建新數(shù)組竟稳。

# flatten方法

arr2.flatten()

#> array([ 100.,? ? 2.,? ? 3.,? ? 4.,? ? 3.,? -1.,? -1.,? ? 6.,? ? 5., 6.,? ? 7.,? ? 8.])

# flatten方法

b1=arr2.flatten()

b1[0]=100# 改變b1的值并未影響arr2

arr2

#> array([[ 100.,? ? 2.,? ? 3.,? ? 4.],

#>? ? ? ? [? 3.,? -1.,? -1.,? ? 6.],

#>? ? ? ? [? 5.,? ? 6.,? ? 7.,? ? 8.]])

# ravel方法

b2=arr2.ravel()

b2[0]=101# 改變b2值,相應(yīng)的改變了arr2值

arr2

#> array([[ 101.,? ? 2.,? ? 3.,? ? 4.],

#>? ? ? ? [? 3.,? -1.,? -1.,? ? 6.],

#>? ? ? ? [? 5.,? ? 6.,? ? 7.,? ? 8.]])

6. 如何通過(guò)numpy生成序列數(shù)(sequences)熊痴,重復(fù)數(shù)(repetitions)和隨機(jī)數(shù)(random)

np.arrange函數(shù)手動(dòng)生成指定數(shù)目的序列數(shù)他爸,與ndarray作用一樣。

# 默認(rèn)下限為0

print(np.arange(5))

# 0 to 9果善,默認(rèn)步數(shù)為1

print(np.arange(0,10))

# 遞增步數(shù)2

print(np.arange(0,10,2))

# 降序

print(np.arange(10,0,-1))

#> [0 1 2 3 4]

#> [0 1 2 3 4 5 6 7 8 9]

#> [0 2 4 6 8]

#> [10? 9? 8? 7? 6? 5? 4? 3? 2? 1]

上例是通過(guò)np.arrange設(shè)置初始位置和結(jié)束位置來(lái)生成序列數(shù)诊笤,如果我們?cè)O(shè)置數(shù)組的元素個(gè)數(shù),那么可以自動(dòng)計(jì)算數(shù)組的遞增值巾陕。

如構(gòu)建1到50的數(shù)組讨跟,數(shù)組有10個(gè)元素纪他,使用np.linspace總動(dòng)計(jì)算數(shù)組的遞增值。

# 起始位置和結(jié)束位置分別為1和50

np.linspace(start=1,stop=50,num=10,dtype=int)

#> array([ 1,? 6, 11, 17, 22, 28, 33, 39, 44, 50])

我們注意到上面例子的遞增值并不相等晾匠,有5和6兩個(gè)值茶袒,原因是計(jì)算遞增值采用了四舍五入的算法(rounding)。與np.linspace類似凉馆,np.logspace以對(duì)數(shù)尺度的方式增長(zhǎng)薪寓。

# 設(shè)置數(shù)組的精度為小數(shù)點(diǎn)后兩位

np.set_printoptions(precision=2)

# 起點(diǎn)為 10^1 and 終點(diǎn)為 10^50,數(shù)組元素個(gè)數(shù)10澜共,以10為底數(shù)

np.logspace(start=1,stop=50,num=10,base=10)

#> array([? 1.00e+01,? 2.78e+06,? 7.74e+11,? 2.15e+17,? 5.99e+22,

#>? ? ? ? ? 1.67e+28,? 4.64e+33,? 1.29e+39,? 3.59e+44,? 1.00e+50])

初始化數(shù)組的元素全為1或全為0向叉。

np.zeros([2,2])

#> array([[ 0.,? 0.],

#>? ? ? ? [ 0.,? 0.]])

np.ones([2,2])

#> array([[ 1.,? 1.],

#>? ? ? ? [ 1.,? 1.]])

7.1 如何構(gòu)建重復(fù)的序列數(shù)

np.tile重復(fù)整個(gè)的數(shù)組或列表n次,np.repeat重復(fù)數(shù)組每一項(xiàng)n次咳胃。

a=[1,2,3]

# 重復(fù)數(shù)組a兩次

print('Tile:? ',np.tile(a,2))

# 重復(fù)數(shù)組a每項(xiàng)兩次

print('Repeat: ',np.repeat(a,2))

#> Tile:? ? [1 2 3 1 2 3]

#> Repeat:? [1 1 2 2 3 3]

7.2 如何生存隨機(jī)數(shù)

random模塊包含的函數(shù)可以生成任一數(shù)組形狀的隨機(jī)數(shù)和統(tǒng)計(jì)分布植康。

# 生成2行2列的[0,1)的隨機(jī)數(shù)

print(np.random.rand(2,2))

# 生成均值為0方差為1的2行2列的正態(tài)分布值

print(np.random.randn(2,2))

# 生成[0,10)的2行2列的隨機(jī)整數(shù)

print(np.random.randint(0,10,size=[2,2]))

# 生成一個(gè)[0,1)的隨機(jī)數(shù)

print(np.random.random())

# 生成[0,1)的2行2列的隨機(jī)數(shù)

print(np.random.random(size=[2,2]))

# 從給定的列表等概率抽樣10次

print(np.random.choice(['a','e','i','o','u'],size=10))

# 從給定的列表和對(duì)應(yīng)的概率分布抽樣10次

print(np.random.choice(['a','e','i','o','u'],size=10,p=[0.3,.1,0.1,0.4,0.1]))# picks more o's

#> [[ 0.84? 0.7 ]

#>? [ 0.52? 0.8 ]]

#> [[-0.06 -1.55]

#>? [ 0.47 -0.04]]

#> [[4 0]

#>? [8 7]]

#> 0.08737272424956832

#> [[ 0.45? 0.78]

#>? [ 0.03? 0.74]]

#> ['i' 'a' 'e' 'e' 'a' 'u' 'o' 'e' 'i' 'u']

#> ['o' 'a' 'e' 'a' 'a' 'o' 'o' 'o' 'a' 'o']

7.3 如何得到數(shù)組獨(dú)特(unique)的項(xiàng)和個(gè)數(shù)(counts)

np.unique函數(shù)去除數(shù)組中重復(fù)的元素,設(shè)置return_counts參數(shù)為T(mén)rue展懈,得到數(shù)組每一項(xiàng)的個(gè)數(shù)。

# 定義范圍為[0,10)供璧,個(gè)數(shù)為10的隨機(jī)整數(shù)數(shù)組

np.random.seed(100)

arr_rand=np.random.randint(0,10,size=10)

print(arr_rand)

#> [8 8 3 7 7 0 4 2 5 2]

# 得到數(shù)組獨(dú)特的項(xiàng)和相應(yīng)的個(gè)數(shù)

uniqs,counts=np.unique(arr_rand,return_counts=True)

print("Unique items : ",uniqs)

print("Counts? ? ? : ",counts)

#> Unique items :? [0 2 3 4 5 7 8]

#> Counts? ? ? :? [1 2 1 1 1 2 2]

8 小結(jié)

本文比較全面的介紹了numpy的基本用法存崖,希望對(duì)numpy還不熟悉的同學(xué)有所幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末睡毒,一起剝皮案震驚了整個(gè)濱河市来惧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌演顾,老刑警劉巖供搀,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件圈纺,死亡現(xiàn)場(chǎng)離奇詭異缕贡,居然都是意外死亡笼蛛,警方通過(guò)查閱死者的電腦和手機(jī)愧旦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)辜窑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)恨统,“玉大人疯淫,你說(shuō)我怎么就攤上這事歉糜∠芮洌” “怎么了的诵?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)佑钾。 經(jīng)常有香客問(wèn)我西疤,道長(zhǎng),這世上最難降的妖魔是什么休溶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任代赁,我火速辦了婚禮扰她,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘管跺。我一直安慰自己义黎,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布豁跑。 她就那樣靜靜地躺著廉涕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艇拍。 梳的紋絲不亂的頭發(fā)上狐蜕,一...
    開(kāi)封第一講書(shū)人閱讀 49,144評(píng)論 1 285
  • 那天,我揣著相機(jī)與錄音卸夕,去河邊找鬼层释。 笑死,一個(gè)胖子當(dāng)著我的面吹牛快集,可吹牛的內(nèi)容都是我干的贡羔。 我是一名探鬼主播,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼个初,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乖寒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起院溺,我...
    開(kāi)封第一講書(shū)人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤楣嘁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后珍逸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體逐虚,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年谆膳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叭爱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡摹量,死狀恐怖涤伐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缨称,我是刑警寧澤凝果,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站睦尽,受9級(jí)特大地震影響器净,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜当凡,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一山害、第九天 我趴在偏房一處隱蔽的房頂上張望纠俭。 院中可真熱鬧,春花似錦浪慌、人聲如沸冤荆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钓简。三九已至,卻和暖如春汹想,著一層夾襖步出監(jiān)牢的瞬間外邓,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工古掏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留损话,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓槽唾,卻偏偏與公主長(zhǎng)得像丧枪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庞萍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • 一豪诲、numpy概述 numpy(Numerical Python)提供了python對(duì)多維數(shù)組對(duì)象的支持:ndar...
    L_steven的貓閱讀 3,456評(píng)論 1 24
  • import numpy as np 創(chuàng)建ndarray data1 = [6,7.5, 8, 0, 1]arr1...
    陸文斌閱讀 632評(píng)論 0 1
  • 先決條件 在閱讀這個(gè)教程之前,你多少需要知道點(diǎn)python挂绰。如果你想從新回憶下,請(qǐng)看看Python Tutoria...
    舒map閱讀 2,570評(píng)論 1 13
  • 前言 numpy是支持 Python語(yǔ)言的數(shù)值計(jì)算擴(kuò)充庫(kù)服赎,其擁有強(qiáng)大的高維度數(shù)組處理與矩陣運(yùn)算能力葵蒂。除此之外,nu...
    TensorFlow開(kāi)發(fā)者閱讀 3,199評(píng)論 0 35
  • 一.NumPy的引入 標(biāo)準(zhǔn)安裝的Python中用列表(list)保存一組值重虑,可以用來(lái)當(dāng)作數(shù)組使用践付,不過(guò)由于列...
    wlj1107閱讀 1,000評(píng)論 0 2