Python數(shù)據(jù)分析(一):Numpy庫(kù)學(xué)習(xí)

一呼奢、Numpy簡(jiǎn)介

Numpy是python的科學(xué)計(jì)算庫(kù),支持高級(jí)大量的維度數(shù)組與矩陣運(yùn)算本橙,此外有針對(duì)數(shù)組運(yùn)算提供了大量的數(shù)學(xué)函數(shù)庫(kù)。基本功能如下:
1脆诉、快速高效的多維數(shù)組對(duì)象ndarray甚亭;
2、用于對(duì)數(shù)組執(zhí)行元素級(jí)計(jì)算以及 直接對(duì)數(shù)組執(zhí)行數(shù)學(xué)運(yùn)算的函數(shù)击胜;
3亏狰、用于讀寫硬盤上基于數(shù)組的數(shù)據(jù)集的工具;
4偶摔、線性代數(shù)運(yùn)算暇唾、傅里葉變換,以及隨機(jī)數(shù)生成辰斋;
5信不、用于將c、c++亡呵、Fortran代碼集成到Python的工具抽活;
6、除了為Python提供快速的數(shù)組處理能力锰什,NumPy在數(shù)據(jù)分析方面還有另外一個(gè)主要作用下硕,即作為在算法之間傳遞數(shù)據(jù)的容器丁逝。

二、Numpy基礎(chǔ)

1梭姓、創(chuàng)建數(shù)組

首先來看一下numpy數(shù)組創(chuàng)建函數(shù)

類型 說明
array 將輸入數(shù)據(jù)(列表霜幼、元組、數(shù)組或其他序列類型)轉(zhuǎn)換為ndarray,要么推斷出dtype,要么顯示指定dtype誉尖。默認(rèn)直接復(fù)制輸入數(shù)據(jù)
asarray 將輸入轉(zhuǎn)換為darray罪既,如果輸入本身就是一個(gè)ndarray就不進(jìn)行復(fù)制
arange 類似于內(nèi)置的range,但返回一個(gè)ndarray而不是列表
ones铡恕,ones_like 根據(jù)指定形狀和dtype創(chuàng)建一個(gè)全1數(shù)組琢感。ones_like以另一個(gè)數(shù)組為參數(shù),并根據(jù)其形狀和dtype創(chuàng)建一個(gè)全1數(shù)組
zeros,zeros_like 類似于ones和ones_like探熔,只不過產(chǎn)生的是全0數(shù)組而已
empty驹针,empty_like 創(chuàng)建數(shù)組,只分配內(nèi)容空間但不填充任何值
eye,identity 創(chuàng)建一個(gè)正方的N*N單位矩陣

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

1诀艰、不用編寫循環(huán)即可對(duì)數(shù)據(jù)執(zhí)行批量運(yùn)算
2柬甥、大小相等的數(shù)組之間的任何算術(shù)運(yùn)算都會(huì)將運(yùn)算應(yīng)用到元素級(jí)
3、數(shù)組與標(biāo)量的算術(shù)運(yùn)算也會(huì)將那個(gè)標(biāo)量值傳播到各個(gè)元素

一維數(shù)組
import numpy as np
arr = np.array([[1,3,4],[5,7,9]])

print (arr * arr)
#輸出結(jié)果
[[ 1  9 16]
 [25 49 81]]

print(arr - arr)
#輸出結(jié)果
[[0 0 0]
 [0 0 0]]

print(1/arr)
#輸出結(jié)果
[[1.         0.33333333 0.25      ]
 [0.2        0.14285714 0.11111111]]

print(arr ** 0.5)
#輸出結(jié)果
[[1.         1.73205081 2.        ]
 [2.23606798 2.64575131 3.        ]]
二維數(shù)組
arr=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])

print(arr[0])
#輸出結(jié)果
[[1 2 3]
 [4 5 6]]

print(arr[1,0])
#輸出結(jié)果
[7 8 9]

values=arr[0]
values
#賦值結(jié)果
array([[1, 2, 3],
       [4, 5, 6]])
#同上
values=arr[0].copy()
values
array([[1, 2, 3],
       [4, 5, 6]])

arr[0]=1
arr[0]
#將第一行全部賦值為1
#輸出結(jié)果
array([[1, 1, 1],
       [1, 1, 1]])

arr[0]=values
arr[0]
#再賦值回來
array([[1, 2, 3],
       [4, 5, 6]])

2其垄、數(shù)據(jù)切片

arr=np.array([1,2,3,4,5,6,7,8,9,10])#一維數(shù)組
arr[1:6]#前閉后開苛蒲,下標(biāo)為1-5的數(shù)據(jù)(下標(biāo)從0開始)
#輸出結(jié)果
array([2, 3, 4, 5, 6])

arr=np.array([[1,2,3],[4,5,6],[7,8,9]])#二維數(shù)組
arr[:2]#前兩行
#輸出結(jié)果
array([[1, 2, 3],
       [4, 5, 6]])

arr[:2,1:]#前兩行的2、3兩列
#輸出結(jié)果
array([[2, 3],
       [5, 6]])

arr[:,:1]#打印第一列的所有元素
#輸出結(jié)果
array([[1],
       [4],
       [7]])

arr[:2,1:]=0#前兩行的第2绿满、3列設(shè)置為0 
arr
#輸出結(jié)果
array([[1, 0, 0],
       [4, 0, 0],
       [7, 8, 9]])

3臂外、數(shù)據(jù)索引

Numpy的ndarray布爾型索引

1、布爾型數(shù)組的長(zhǎng)度必須跟被索引的軸長(zhǎng)度一致
2棒口、可以將布爾型數(shù)組跟切片寄月、整數(shù)(或整數(shù)序列)混合使用
例如

import numpy.random as np_random
name_arr = np.array(['Bob','Joe','Eill','Eill','Joe','Joe','Bob'])
rand_arr=np_random.randn(7,4)#隨機(jī)7*4的數(shù)組
rand_arr
#輸出結(jié)果
array([[ 0.52900587,  1.70244139, -1.35744235,  1.25015313],
       [ 0.23373258,  1.09742228, -1.00995459, -1.54458745],
       [-0.62998363,  0.11589576,  0.13457285,  0.31126254],
       [-1.01457169, -0.06292203, -0.67612224, -0.74714611],
       [-1.99870067,  1.53986087, -0.38757238, -1.08902317],
       [ 1.09207708, -0.64661848, -0.07324105,  0.32222022],
       [-1.2301582 ,  1.76768207, -1.09098274, -0.47474178]])

name_arr=='Bob'#返回布爾數(shù)組辜膝,元素等于‘Bob’為True,否則Faluse
#輸出結(jié)果
array([ True, False, False, False, False, False,  True])

rand_arr[name_arr=='Bob']#利用布爾數(shù)組選擇行无牵,前提是長(zhǎng)度必須等于數(shù)組行數(shù)
#輸出結(jié)果(將符合條件的行輸出)
array([[ 0.52900587,  1.70244139, -1.35744235,  1.25015313],
       [-1.2301582 ,  1.76768207, -1.09098274, -0.47474178]])

rand_arr[name_arr == 'Bob',:2]#增加限制打印列的范圍
#輸出結(jié)果
array([[ 0.52900587,  1.70244139],
       [-1.2301582 ,  1.76768207]])

rand_arr[~(name_arr == 'Bob')]#對(duì)布爾數(shù)組的內(nèi)容取反
#輸出結(jié)果
array([[ 0.23373258,  1.09742228, -1.00995459, -1.54458745],
       [-0.62998363,  0.11589576,  0.13457285,  0.31126254],
       [-1.01457169, -0.06292203, -0.67612224, -0.74714611],
       [-1.99870067,  1.53986087, -0.38757238, -1.08902317],
       [ 1.09207708, -0.64661848, -0.07324105,  0.32222022]])

mask_arr = (name_arr == 'Bob') | (name_arr == 'Eill')
rand_arr[mask_arr]
#輸出結(jié)果
array([[ 0.52900587,  1.70244139, -1.35744235,  1.25015313],
       [-0.62998363,  0.11589576,  0.13457285,  0.31126254],
       [-1.01457169, -0.06292203, -0.67612224, -0.74714611],
       [-1.2301582 ,  1.76768207, -1.09098274, -0.47474178]])

rand_arr[name_arr !='Joe']=7
rand_arr
#輸出結(jié)果
array([[ 7.        ,  7.        ,  7.        ,  7.        ],
       [ 0.23373258,  1.09742228, -1.00995459, -1.54458745],
       [ 7.        ,  7.        ,  7.        ,  7.        ],
       [ 7.        ,  7.        ,  7.        ,  7.        ],
       [-1.99870067,  1.53986087, -0.38757238, -1.08902317],
       [ 1.09207708, -0.64661848, -0.07324105,  0.32222022],
       [ 7.        ,  7.        ,  7.        ,  7.        ]])

Numpy的ndarray花式索引

1、花式索引是一個(gè)NumPy術(shù)語(yǔ)厂抖,它指的是利用整數(shù)數(shù)組進(jìn)行索引
2茎毁、一次傳入多個(gè)索引數(shù)組會(huì)有一點(diǎn)特別。它返回的是一個(gè)一維數(shù)組忱辅,其中的元素對(duì)應(yīng)各個(gè)索引元組

import numpy as np
arr=np.empty((8,4))#empty創(chuàng)建的數(shù)組中七蜘,包含的均是無(wú)意義的數(shù)值
arr
#輸出結(jié)果
array([[6.23060065e-307, 8.90104239e-307, 1.89150801e-307,
        1.50202247e-307],
       [3.56043053e-307, 7.56595733e-307, 3.56043054e-307,
        7.56595733e-307],
       [1.00131040e-307, 8.34426464e-308, 6.23038675e-307,
        1.50201822e-307],
       [3.56043053e-307, 1.60219306e-306, 2.44763557e-307,
        1.69119330e-306],
       [4.22805115e-307, 3.22651328e-307, 3.11524091e-307,
        1.60219035e-306],
       [4.45063154e-308, 6.23039354e-307, 2.33422937e-312,
        2.67023123e-307],
       [1.61324985e-307, 3.22649121e-307, 5.34041153e-307,
        2.00264456e-307],
       [8.34427737e-308, 1.50198257e-307, 4.22786442e-307,
        2.00271247e-307]])

for i in range(8):
    arr[i]=i
arr
#輸出結(jié)果
array([[0., 0., 0., 0.],
       [1., 1., 1., 1.],
       [2., 2., 2., 2.],
       [3., 3., 3., 3.],
       [4., 4., 4., 4.],
       [5., 5., 5., 5.],
       [6., 6., 6., 6.],
       [7., 7., 7., 7.]])

print(arr[[4,3,0,6]])
#輸出結(jié)果
[[4. 4. 4. 4.]
 [3. 3. 3. 3.]
 [0. 0. 0. 0.]
 [6. 6. 6. 6.]]

print(arr[[-3,-5,-7]])
#輸出結(jié)果
[[5. 5. 5. 5.]
 [3. 3. 3. 3.]
 [1. 1. 1. 1.]]

arr=np.arange(32).reshape((8,4))#依次生成32個(gè)自然數(shù),并且以8行4列的數(shù)組形式顯示:
arr
#輸出結(jié)果
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23],
       [24, 25, 26, 27],
       [28, 29, 30, 31]])

print(arr[[1,5,7,2],[0,3,1,2]])#自動(dòng)匹配(1,0),(5,3),(7,1),(2,2)
#數(shù)據(jù)結(jié)果
[ 4 23 29 10]

print(arr[[1,5,7,2]][:,[0,3,1,2]])#1墙懂、5橡卤、7、2行的0损搬、3碧库、1柜与、2列
#輸出結(jié)果
[[ 4  7  5  6]
 [20 23 21 22]
 [28 31 29 30]
 [ 8 11  9 10]]

print(arr[np.ix_([1,5,7,2],[0,3,1,2])])#可讀性更好的寫法
#能把兩個(gè)一維數(shù)組 轉(zhuǎn)換為 一個(gè)用于選取方形區(qū)域的索引器
#直接往np.ix_()里扔進(jìn)兩個(gè)一維數(shù)組[1,5,7,2],[0,3,1,2]嵌灰,就能先按我們要求選取行弄匕,再按順序?qū)⒘信判颍厦娴玫降慕Y(jié)果一樣
#輸出結(jié)果
[[ 4  7  5  6]
 [20 23 21 22]
 [28 31 29 30]
 [ 8 11  9 10]]

4沽瞭、NumPy的ndarray數(shù)組轉(zhuǎn)置和軸對(duì)換

import numpy as np
import numpy.random as np_random
print ('轉(zhuǎn)置矩陣')
arr=np.arange(15).reshape((3,5))#生成順序數(shù)組迁匠,后整形為3行5列  
print (arr)
#輸出結(jié)果
轉(zhuǎn)置矩陣
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

print(arr.T)
#輸出結(jié)果
[[ 0  5 10]
 [ 1  6 11]
 [ 2  7 12]
 [ 3  8 13]
 [ 4  9 14]]

print('轉(zhuǎn)置矩陣做點(diǎn)積')
arr = np_random.randn(6,3)
print(arr)
#輸出結(jié)果
[[ 0.86578763  0.645244   -0.49405087]
 [ 0.27238488 -0.40718433 -0.02145935]
 [-1.96089557 -0.06565915 -0.09322006]
 [ 0.73279045 -0.7511035   0.29078194]
 [ 2.18427138 -0.86903329  0.57696171]
 [-0.67968328  1.25416114 -0.05842028]]

print(np.dot(arr.T,arr))
#輸出結(jié)果
轉(zhuǎn)置矩陣做點(diǎn)積
[[10.43888587 -2.72455423  1.26223693]
 [-2.72455423  3.4787455  -1.0969994 ]
 [ 1.26223693 -1.0969994   0.67408863]]

print('高維矩陣轉(zhuǎn)換')
arr=np.arange(16).reshape((2,2,4))
arr_copy=arr.copy()
print(arr)
#輸出結(jié)果
[[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]]

print(arr[0])
#輸出結(jié)果
[[0 1 2 3]
 [4 5 6 7]]

print(arr[0][0])
#輸出結(jié)果
[0 1 2 3]

print(arr[0][0][1])
#輸出結(jié)果
1

print(arr.transpose(1,0,2))#transpose的參數(shù)為坐標(biāo),現(xiàn)在傳入為(1,0,2)代表a[x][y][z]=a[y][x][z]
#輸出結(jié)果
[[[ 0  1  2  3]
  [ 8  9 10 11]]

 [[ 4  5  6  7]
  [12 13 14 15]]]

print(arr_copy)
#輸出結(jié)果
print(arr_copy)
print(arr_copy)
[[[ 0  1  2  3]
  [ 4  5  6  7]]

 [[ 8  9 10 11]
  [12 13 14 15]]]

print(arr_copy.transpose(0,2,1))
#輸出結(jié)果
[[[ 0  4]
  [ 1  5]
  [ 2  6]
  [ 3  7]]

 [[ 8 12]
  [ 9 13]
  [10 14]
  [11 15]]]

5驹溃、NumPy的ndarray快速的元素級(jí)數(shù)組函數(shù)

一元函數(shù)
類型 說明
abs,fabs 計(jì)算整數(shù)城丧,浮點(diǎn)數(shù)或復(fù)數(shù)的絕對(duì)值。對(duì)于非復(fù)數(shù)值吠架,可以使用更快的fabs
sqrt 計(jì)算各元素的平方根芙贫。相當(dāng)于arr**0.5
sqare 計(jì)算各元素的平方。相當(dāng)于arr**2
exp 計(jì)算各元素的e^x
log,log10,log2,log1p 分別為自然對(duì)數(shù)傍药、底數(shù)為10的log磺平、底數(shù)為2的log和log(1+x)
sign 計(jì)算各元素的正負(fù)號(hào):1(正數(shù))、0(零)拐辽、-1(負(fù)數(shù))
ceil 計(jì)算各元素的ceiling值拣挪,即大于等于該值得最小整數(shù)
floor 計(jì)算各元素的floor值,即小于等于該值得最大整數(shù)
rint 將各元素值四舍五入到最接近的整數(shù)俱诸,保留dtype
modf 將數(shù)組的小數(shù)部分與整數(shù)部分以兩個(gè)獨(dú)立數(shù)組的形式返還
isnan 返回一個(gè)表示“哪些值是NaN(這不是一個(gè)數(shù)字)”的布爾型數(shù)組
isfinite,isinf 分別返回一個(gè)表示“哪些元素是有限的(非inf,非NaN)”或“哪些元素是無(wú)窮的”的布爾型數(shù)組
cos,cosh,sin,sinh,tan,tanh 普通型或雙曲型三角函數(shù)
arccos,arccosh,arcsin,arcsinh,arctan,arctanh 反三角函數(shù)
logical_not 計(jì)算各元素not x的真值菠劝。相當(dāng)于-arr
二元函數(shù)
類型 說明
add 將數(shù)組中對(duì)應(yīng)的元素相加
subtract 從第一個(gè)數(shù)組中減去第二個(gè)數(shù)組中的元素
multiply 數(shù)組元素相乘
divide,floor_divide 除法或向下取整除法
power 對(duì)第一個(gè)數(shù)組中的元素A和第二個(gè)數(shù)組中對(duì)應(yīng)位置的元素B,計(jì)算A^B
maximum睁搭,fmax 元素級(jí)的最大值計(jì)算赶诊。fmax將忽略NaN
minimum,fmin 元素級(jí)的最小值計(jì)算。fmin將忽略NaN
mod 元素級(jí)的求模計(jì)算
copysign 將第二個(gè)數(shù)組中的符號(hào)復(fù)制給第一個(gè)數(shù)組中的值
greater园骆,greater_equal,less,less_equal,equal,not_equal 執(zhí)行元素級(jí)的比較舔痪,最終產(chǎn)生布爾型數(shù)組
logical_and,logical_or,logical_xor 執(zhí)行元素級(jí)的真值邏輯運(yùn)算,最終產(chǎn)生布爾型數(shù)組

舉例說明

import numpy as np
import numpy.random as np_random
print('求平方根')
arr=np.arange(10)
print(np.sqrt(arr))
#輸出結(jié)果
求平方根
[0.         1.         1.41421356 1.73205081 2.        2.23606798   2.44948974   2.64575131   2.82842712   3.        ]

print('數(shù)組比較')
x=np_random.randn(8)#標(biāo)準(zhǔn)正態(tài)分布中返回一個(gè)或多個(gè)樣本值,numpy.random.rand(d0, d1, …, dn)的隨機(jī)樣本位于[0, 1)中锌唾。
y=np_random.randn(8)
print(x)
print(y)
print (np.maximum(x,y))
#輸出結(jié)果
數(shù)組比較
[ 9.52102078e-01 -5.50715978e-01 -2.88311757e-02 -6.73292894e-01
  1.49144587e+00 -4.29510384e-01 -4.29998122e-01 -1.36136122e-03]
[ 2.13373561  2.06364166  0.61558615 -0.59547026  1.31034061  0.17616641
  0.28403327 -0.26767038]
[ 2.13373561e+00  2.06364166e+00  6.15586151e-01 -5.95470255e-01
  1.49144587e+00  1.76166407e-01  2.84033273e-01 -1.36136122e-03]

print('使用modf函數(shù)把浮點(diǎn)數(shù)分解成整數(shù)和小數(shù)部分')
arr=np_random.randn(7) * 5 #統(tǒng)一乘5
print(np.modf(arr))
#輸出結(jié)果
使用modf函數(shù)把浮點(diǎn)數(shù)分解成整數(shù)和小數(shù)部分
(array([-0.82838311, -0.71882546, -0.41527595, -0.21803734, -0.99155683,
        0.75074988, -0.35514585]), array([ -4.,  -1., -11.,  -3.,  -1.,   1.,  -3.]))

6锄码、利用數(shù)組進(jìn)行數(shù)據(jù)處理

NumPy數(shù)組使你可以將許多種數(shù)據(jù)處理任務(wù)表述為簡(jiǎn)潔的數(shù)組表達(dá)式(否則需要編寫循環(huán))。將數(shù)組表達(dá)式代替循環(huán)的做法晌涕,通常被稱為矢量化滋捶。矢量化數(shù)組運(yùn)算要比等價(jià)的純Python方式快上一兩個(gè)數(shù)量級(jí)

print('通過真值表選擇元素')
x_arr=np.array([1.1,1.2,1.3,1.4,1.5])
y_arr=np.array([2.1,2.2,2.3,2.4,2.5])
cond=np.array([True,False,True,True,False])
result=[(x if c else y) for x,y,c in zip(x_arr,y_arr,cond)]
print(result)
#輸出結(jié)果
通過真值表選擇元素
[1.1, 2.2, 1.3, 1.4, 2.5]

print(np.where(cond,x_arr,y_arr))
#輸出結(jié)果
[1.1 2.2 1.3 1.4 2.5]

arr=np_random.randn(4,4)
print(arr)
print(np.where(arr>0,2,-2))
print(np.where(arr >0,2,arr))
#輸出結(jié)果
[[-1.17689271  1.22467723  0.43345675 -0.72233803]
 [-0.63662559  0.47394752 -0.78281055  0.7745087 ]
 [ 0.34016053  1.2149215  -0.44530653 -2.02560303]
 [ 0.42546874  1.21322415 -0.86223039  0.86367628]]
[[-2  2  2 -2]
 [-2  2 -2  2]
 [ 2  2 -2 -2]
 [ 2  2 -2  2]]
[[-1.17689271  2.          2.         -0.72233803]
 [-0.63662559  2.         -0.78281055  2.        ]
 [ 2.          2.         -0.44530653 -2.02560303]
 [ 2.          2.         -0.86223039  2.        ]]

cond_1=np.array([True,False,True,True,False])
cond_2=np.array([False,True,False,True,False])
# 傳統(tǒng)代碼
result=[]
for i in range(len(cond)):
    if cond_1[i] and cond_2[i]:  # 如果同時(shí)滿足,就不在往下走
        result.append(0)
    elif cond_1[i]:
        result.append(1)
    elif cond_2[i]:
        result.append(2)
    else:
        result.append(3)
print(result)
#輸出結(jié)果
[1, 2, 1, 0, 3]

result = np.where(cond_1 & cond_2,0,np.where(cond_1,1,np.where(cond_2,2,3)))
print(result)
[1 2 1 0 3]

7余黎、利用數(shù)組進(jìn)行數(shù)據(jù)處理——數(shù)學(xué)和統(tǒng)計(jì)方法

類型 說明
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 分別為最大值和最小值的索引
cumsum 所有元素的累計(jì)和
cumprod 所有元素的累計(jì)積
import numpy as np
import numpy.random as np_random
print('求和巡扇,求平均')
arr=np.random.randn(5,4)
print(arr)
print(arr.mean())
print(arr.sum())
print(arr.mean(axis=1))#對(duì)每一行的元素求平均值
print(arr.sum(0))#對(duì)每一列元素求和炒考,axis可以省略
#輸出結(jié)果
求和,求平均
[[ 1.1920312   0.59548133 -1.69638354 -0.86765064]
 [ 0.48965205  1.21543697 -0.46861947  0.15786849]
 [ 0.46646589 -1.07657886  0.34960628 -0.64421778]
 [ 0.75182741  0.88173646 -2.1914321   0.53707905]
 [ 0.2316153   1.01686933  1.52000011 -2.31109877]]
0.00748443502551317
0.1496887005102634
[-0.19413041  0.34858451 -0.22618112 -0.0051973   0.11434649]
[ 3.13159185  2.63294523 -2.48682873 -3.12801965]

print('cumsum和cumprod函數(shù)演示')
arr=np.array([[0,1,2],[3,4,5],[6,7,8]])
print(arr.cumsum(0))# 按列求和
print(arr.cumprod(1))# 按行求積
print(arr.cumprod(0))# 按列求積
#輸出結(jié)果
cumsum和cumprod函數(shù)演示
[[ 0  1  2]
 [ 3  5  7]
 [ 9 12 15]]
[[  0   0   0]
 [  3  12  60]
 [  6  42 336]]
[[ 0  1  2]
 [ 0  4 10]
 [ 0 28 80]]

print('對(duì)正數(shù)求和')
arr=np_random.randn(100)
print((arr > 0).sum())
#輸出結(jié)果
對(duì)正數(shù)求和
42

print('對(duì)數(shù)組邏輯操作')
bools=np.array([False,False,True,False])
print(bools.any())# 有一個(gè)為True則返回True
print(bools.all())# 有一個(gè)為False則返回False
#輸出結(jié)果
對(duì)數(shù)組邏輯操作
True
False

8霎迫、利用數(shù)組進(jìn)行數(shù)據(jù)處理——排序

import numpy as np
import numpy.random as np_random
print('一維數(shù)組排序')
arr=np_random.randn(8)
arr.sort()
print(arr)
一維數(shù)組排序
[-1.93454221 -1.6182566  -0.77200267 -0.688614   -0.63448136 -0.6169222
 -0.18656019  0.26607257]

print('二維數(shù)組排序')
arr=np_random.randn(5,3)
arr.sort(1) # 對(duì)每一行元素做排序
print(arr)
#輸出結(jié)果
二維數(shù)組排序
[[-0.25145057 -0.01089318  0.19817363]
 [-1.46680866  0.08178992  1.49258159]
 [ 0.65733633  1.59214515  2.81517738]
 [ 0.30385335  0.78703474  1.23996363]
 [-0.82907411 -0.32716698  2.83399797]]

print('找位置在5%的數(shù)字')
large_arr=np_random.randn(1000)
large_arr.sort()
print(large_arr[int(0.05 * len(large_arr))])
#輸出結(jié)果
找位置在5%的數(shù)字
-1.6407082885132667

9斋枢、利用數(shù)組進(jìn)行數(shù)據(jù)處理——去重以及其他集合運(yùn)算

類型 說明
unique(x) 計(jì)算x中的唯一元素,并返回有序結(jié)果
intersect1d(x,y) 計(jì)算x和y的公共元素知给,并返回有序結(jié)果
union1d(x,y) 計(jì)算x和y的并集瓤帚,并返回有序結(jié)果
in1d(x,y) 得到一個(gè)表述“x的元素是否包含于y”的布爾型數(shù)組
setdiff1d(x,y) 集合的差,即元素在x中且不在y中
setxor1d(x,y) 集合的異或涩赢,即存在于一個(gè)數(shù)組中但不同時(shí)存在于兩個(gè)數(shù)組中的元素

例如

import numpy as np
import numpy.random as np_random
print('用unique函數(shù)去重')
names=np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])
print(sorted(set(names))) #傳統(tǒng)python做法
print(np.unique(names))
ints=np.array([3,3,3,2,2,1,1,4,4])
print(np.unique(ints))
#輸出結(jié)果
用unique函數(shù)去重
['Bob', 'Joe', 'Will']
['Bob' 'Joe' 'Will']
[1 2 3 4]

print('查找數(shù)組元素是否在另一個(gè)數(shù)組')
values=np.array([6,0,0,3,2,5,6])
print(np.in1d(values,[2,3,6]))#中間的是數(shù)字1
#輸出結(jié)果
查找數(shù)組元素是否在另一個(gè)數(shù)組
[ True False False  True  True False  True]

10戈次、用于數(shù)組的文件的輸入輸出

NumPy能夠讀寫磁盤上的文本數(shù)據(jù)或二進(jìn)制數(shù)據(jù)
1、將數(shù)組以二進(jìn)制格式保存到磁盤
np.save和np.load是讀寫磁盤數(shù)組數(shù)據(jù)的兩個(gè)主要函數(shù)筒扒。默認(rèn)情況下怯邪,數(shù)組使以未壓縮的原始二進(jìn)制格式保存在擴(kuò)展名為.npy的文件中的。

arr=np.arange(10)
np.save('E:\some_array',arr)#如果文件路徑末尾沒有擴(kuò)展名.npy花墩,則該擴(kuò)展名會(huì)被自動(dòng)加上
np.load('E:\some_array.npy')
#輸出結(jié)果
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

通過np.savez可以將多個(gè)數(shù)組保存到一個(gè)壓縮文件中悬秉,將數(shù)組以關(guān)鍵字參數(shù)的形式傳入即可:

# 數(shù)組可以用關(guān)鍵字參數(shù),關(guān)鍵字可以做為加載字典的key冰蘑,不寫的話和泌,key為數(shù)組名_索引號(hào)
np.savez('some_array_achive.zip',arr,arr)
#加載npz文件時(shí),會(huì)得到一個(gè)類似字典的對(duì)象祠肥,該對(duì)象會(huì)對(duì)各個(gè)數(shù)組進(jìn)行延遲加載
arch=np.load("some_array_achive.zip.npz")
arch['arr_0']
#輸出結(jié)果
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

np.savez('some_array_archive.npz',a=arr,b=arr)
arch=np.load('some_array_archive.npz')
arch['b']
#輸出結(jié)果
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

2武氓、存取文本文件
函數(shù)為savetxt和loadtxt,delimiter用于指定分隔符仇箱。

arr=np.arange(15).reshape(3,5)
np.savetxt('E:\\number.txt',arr)#默認(rèn)是以空格存儲(chǔ)
np.loadtxt('E:\\number.txt',delimiter=' ')
#輸出結(jié)果
array([[ 0.,  1.,  2.,  3.,  4.],
       [ 5.,  6.,  7.,  8.,  9.],
       [10., 11., 12., 13., 14.]])


arr=np.arange(15).reshape(3,5)
np.savetxt('E:\\number.txt',arr,fmt="%d", delimiter=",")##改為保存為整數(shù)县恕,以逗號(hào)分隔
np.loadtxt('E:\\number.txt',delimiter=',')#讀入時(shí)也需要指定逗號(hào)分隔
#輸出結(jié)果
array([[ 0.,  1.,  2.,  3.,  4.],
       [ 5.,  6.,  7.,  8.,  9.],
       [10., 11., 12., 13., 14.]])

11、線性代數(shù)相關(guān)知識(shí)

1剂桥、常用的numpy.linalg函數(shù)
類型 說明
diag 以一維數(shù)組的形式返回方陣的對(duì)角線(或非對(duì)角線元素)忠烛,或?qū)⒁痪S數(shù)組轉(zhuǎn)換為方陣(非對(duì)角線元素為0)
dot 矩陣乘法
trace 計(jì)算對(duì)角線元素的和
det 計(jì)算矩陣行列式
eig 計(jì)算方陣的特征值和特征向量
inv 計(jì)算方陣的逆
pinv 計(jì)算矩陣的Moore-Penrose偽逆
qr 計(jì)算QR分解
svd 計(jì)算奇異值分解
solve 解線性方程Ax=b,其中A為一個(gè)方陣
lstsq 計(jì)算Ax=b的最小二乘法
2、隨機(jī)數(shù)生成

部分numpy.random函數(shù)

類型 說明
seed 確定隨機(jī)數(shù)生成器的種子
permutation 返回一個(gè)序列的隨機(jī)排列或返回一個(gè)隨機(jī)排列的返回
shuffle 對(duì)一個(gè)序列就地隨機(jī)亂序
rand 產(chǎn)生均勻分布的樣本值
randint 從給定的上下限范圍內(nèi)隨機(jī)選取整數(shù)
randn 產(chǎn)生正態(tài)分布(平均值為0渊额,標(biāo)準(zhǔn)差為1)
binomial 產(chǎn)生二項(xiàng)分布的樣本值
normal 產(chǎn)生正態(tài)(高斯)分布的樣本值
beta 產(chǎn)生Beta分布的樣本值
chisquare 產(chǎn)生卡方分布的樣本值
gamma 產(chǎn)生Gamma分布的樣本值
uniform 產(chǎn)生在[0,1]中均勻分布的樣本值

舉例說明一下:

import numpy as np
import numpy.random as np_random
from numpy.linalg import inv,qr #np.linalg.qr() 計(jì)算矩陣的QR分解况木。把矩陣A作為QR垒拢,q是正交的旬迹,r是上三角形。
print('矩陣乘法')
x=np.array([[1,2,3],[4,5,6]])
y=np.array([[6,23],[-1,7],[8,9]])
print(x.dot(y))
print(np.dot(x,np.ones(3)))
#輸出結(jié)果
矩陣乘法
[[ 28  64]
 [ 67 181]]
[ 6. 15.]

print('矩陣求逆')
x=np_random.randn(5,5)
mat=x.T.dot(x)
print(mat)
print(inv(mat)) #矩陣求逆
#輸出結(jié)果
矩陣求逆
[[ 1.98865642  0.87621711  0.50914973 -0.59201157  1.4962339 ]
 [ 0.87621711  3.21679405 -2.71081078 -2.47261804  3.30593938]
 [ 0.50914973 -2.71081078  3.95085603  1.98369356 -3.06847868]
 [-0.59201157 -2.47261804  1.98369356  2.28325811 -1.90019395]
 [ 1.4962339   3.30593938 -3.06847868 -1.90019395  5.32927538]]
[[ 2.51522146  0.5094521  -2.05939265  1.64310943 -1.62208792]
 [ 0.5094521   8.5351535   0.03408685  6.87711283 -2.96597858]
 [-2.05939265  0.03408685  2.30160136 -1.32271445  1.4106317 ]
 [ 1.64310943  6.87711283 -1.32271445  6.95687878 -3.00849462]
 [-1.62208792 -2.96597858  1.4106317  -3.00849462  2.22246694]]

print('矩陣消元')
print(mat)
q,r=qr(mat)
print(q)
print(r)
#輸出結(jié)果
矩陣消元
[[ 1.98865642  0.87621711  0.50914973 -0.59201157  1.4962339 ]
 [ 0.87621711  3.21679405 -2.71081078 -2.47261804  3.30593938]
 [ 0.50914973 -2.71081078  3.95085603  1.98369356 -3.06847868]
 [-0.59201157 -2.47261804  1.98369356  2.28325811 -1.90019395]
 [ 1.4962339   3.30593938 -3.06847868 -1.90019395  5.32927538]]
[[-0.7227447   0.33998332  0.10879741  0.50419857 -0.30983603]
 [-0.3184468  -0.43592479 -0.4689645  -0.4094794  -0.56653343]
 [-0.18504216  0.69437513 -0.43057462 -0.47498117  0.26944565]
 [ 0.21515694  0.35644137  0.57379943 -0.40888083 -0.57465444]
 [-0.54378178 -0.29184524  0.5035823  -0.43048784  0.4245148 ]]
[[-2.75153372 -3.4857553   1.85957706  2.37275326 -4.8731658 ]
 [ 0.         -4.83286671  5.70077957  3.62243914 -5.29575305]
 [ 0.          0.         -0.78145947  0.59426082  1.52702576]
 [ 0.          0.          0.         -0.3437924  -0.65908086]
 [ 0.          0.          0.          0.          0.19101063]]

三求类、NumPy高級(jí)應(yīng)用

1奔垦、數(shù)組重塑

import numpy as np
print('將一位數(shù)組轉(zhuǎn)化為二維數(shù)組')
arr=np.arange(8)
print(arr)
print(arr.reshape((4,2)))
print(arr.reshape((4,2)).reshape((2,4)))  #支持鏈?zhǔn)讲僮?#輸出結(jié)果
將一位數(shù)組轉(zhuǎn)化為二維數(shù)組
[0 1 2 3 4 5 6 7]
[[0 1]
 [2 3]
 [4 5]
 [6 7]]
[[0 1 2 3]
 [4 5 6 7]]

print('緯度大小自動(dòng)推導(dǎo)')
arr=np.arange(15)
print(arr.reshape((5,-1)))
#輸出結(jié)果
緯度大小自動(dòng)推導(dǎo)
[[ 0  1  2]
 [ 3  4  5]
 [ 6  7  8]
 [ 9 10 11]
 [12 13 14]]

print('獲取維度信息并應(yīng)用')
other_arr=np.ones((3,5))
print(other_arr.shape)
print(arr.reshape(other_arr.shape))
#輸出結(jié)果
獲取維度信息并應(yīng)用
(3, 5)
[[ 0  1  2  3  4]
 [ 5  6  7  8  9]
 [10 11 12 13 14]]

print('高維數(shù)組拉平')
arr=np.arange(15).reshape((5,3))
print(arr.ravel())
#輸出結(jié)果
高維數(shù)組拉平
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

2、數(shù)組的合并和拆分

數(shù)組連接函數(shù)

類型 說明
concatenate 最一般化的連接尸疆,沿一條軸連接一組數(shù)組
vstack,row_stack 以面向行的方式對(duì)數(shù)組進(jìn)行堆疊(沿軸0)
hstack 以面向行的方式對(duì)數(shù)組進(jìn)行堆疊(沿軸1)
column_stack 類似于hstack椿猎,但是會(huì)先將一維數(shù)組轉(zhuǎn)換為二維列向量
dstack 以面向“深度”的方式對(duì)數(shù)組進(jìn)行堆疊(沿軸2)
split 沿指定軸在指定的位置拆分?jǐn)?shù)組
hsplit,vsplit,dsplit split的便捷化函數(shù)惶岭,分別沿著軸0、軸1和軸2進(jìn)行拆分

舉例說明

import numpy as np
import numpy.random as np_random
print('連接兩個(gè)二維數(shù)組')
arr1=np.array([[1,2,3],[4,5,6]])
arr2=np.array([[7,8,9],[10,11,12]])
print(np.concatenate([arr1,arr2],axis=0)) #按行連接
print(np.concatenate([arr1,arr2],axis=1)) #按列連接
#輸出結(jié)果
連接兩個(gè)二維數(shù)組
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]

#所謂堆疊犯眠,可以參考疊盤子...連接的另一種表述
print('垂直stack與水平stack')
print(np.vstack((arr1,arr2)))  #垂直堆疊
print(np.hstack((arr1,arr2)))   #水平堆疊
#輸出結(jié)果
垂直stack與水平stack
[[ 1  2  3]
 [ 4  5  6]
 [ 7  8  9]
 [10 11 12]]
[[ 1  2  3  7  8  9]
 [ 4  5  6 10 11 12]]

print('拆分?jǐn)?shù)組')
arr=np_random.randn(5,5)
print('水平拆分')
#split() 默認(rèn)沿著軸 0 分裂按灶,其第二個(gè)參數(shù) [1, 3] 相當(dāng)于是個(gè)切片操作,將數(shù)組分成三部分:
#第一部分 - :1 (即第 1 行)
#第二部分 - 1:3 (即第 2 到 3 行)
#第二部分 - 3:  (即第 4 到 5 行)
first,second,third=np.split(arr,[1,3],axis=0)
print('first')
print(first)
print('second')
print(second)
print('third')
print(third)
#輸出結(jié)果
拆分?jǐn)?shù)組
水平拆分
first
[[-0.46491171 -0.19058384 -1.07364092 -1.85470984  0.25540176]]
second
[[ 1.74812413 -1.68223681 -0.36129552 -0.55700583 -0.07995627]
 [ 0.23844452 -0.4824581  -0.80981716 -2.03862077  0.80593082]]
third
[[-0.46856153 -0.65257412  1.56297046 -0.88790314  0.9681378 ]
 [ 0.39970154 -0.02626426 -0.49439246  0.33935688  1.11579582]]

print('垂直拆分')
first,second,third=np.split(arr,[1,3],axis=1)
print('first')
print(first)
print('second')
print(second)
print('third')
print(third)
#輸出結(jié)果
垂直拆分
first
[[-0.46491171]
 [ 1.74812413]
 [ 0.23844452]
 [-0.46856153]
 [ 0.39970154]]
second
[[-0.19058384 -1.07364092]
 [-1.68223681 -0.36129552]
 [-0.4824581  -0.80981716]
 [-0.65257412  1.56297046]
 [-0.02626426 -0.49439246]]
third
[[-1.85470984  0.25540176]
 [-0.55700583 -0.07995627]
 [-2.03862077  0.80593082]
 [-0.88790314  0.9681378 ]
 [ 0.33935688  1.11579582]]

3筐咧、元素的重復(fù)操作

import numpy as np
import numpy.random as np_random
print('Repeat:按元素')
arr=np.arange(3)
print(arr.repeat(3))
print(arr.repeat([2,3,4])) #3個(gè)元素鸯旁,分別復(fù)制2,3,4次,長(zhǎng)度要匹配
#輸出結(jié)果
Repeat:按元素
[0 0 0 1 1 1 2 2 2]
[0 0 1 1 1 2 2 2 2]

print('Repeat:指定軸')
arr=np_random.randn(2,2)
print(arr)
print(arr.repeat(2,axis=0))#按行repeat
print(arr.repeat(2,axis=1))#按列repeat
#輸出結(jié)果
Repeat:指定軸
[[1.50330034 0.35285254]
 [0.22505996 1.09992342]]
[[1.50330034 0.35285254]
 [1.50330034 0.35285254]
 [0.22505996 1.09992342]
 [0.22505996 1.09992342]]
[[1.50330034 1.50330034 0.35285254 0.35285254]
 [0.22505996 0.22505996 1.09992342 1.09992342]]

print('Tile:參考貼瓷磚')
print(np.tile(arr,2))
print(np.tile(arr,(2,3)))#指定每個(gè)軸的tile次數(shù)
#輸出結(jié)果
Tile:參考貼瓷磚
[[1.50330034 0.35285254 1.50330034 0.35285254]
 [0.22505996 1.09992342 0.22505996 1.09992342]]
[[1.50330034 0.35285254 1.50330034 0.35285254 1.50330034 0.35285254]
 [0.22505996 1.09992342 0.22505996 1.09992342 0.22505996 1.09992342]
 [1.50330034 0.35285254 1.50330034 0.35285254 1.50330034 0.35285254]
 [0.22505996 1.09992342 0.22505996 1.09992342 0.22505996 1.09992342]]

4量蕊、花式索引的等價(jià)函數(shù)

1铺罢、take
2、put
import numpy as np
import numpy.random as np_random
print('Fancy Indexing 例子代碼')
arr=np.arange(10)*100
print(arr)
inds=[7,1,2,6]
print(arr[inds])
#輸出結(jié)果
Fancy Indexing 例子代碼
[  0 100 200 300 400 500 600 700 800 900]
[700 100 200 600]

print('使用take')
print(arr.take(inds))
#輸出結(jié)果
使用take
[700 100 200 600]

print('使用put更新內(nèi)容')
arr.put(inds,50)
print(arr)
#輸出結(jié)果
使用put更新內(nèi)容
[  0  50  50 300 400 500  50  50 800 900]

arr.put(inds,[70,10,20,60])
print(arr)
#輸出結(jié)果
[  0  10  20 300 400 500  60  70 800 900]

Numpy的學(xué)習(xí)就到這里残炮,以上的代碼都是在jupyter上面實(shí)現(xiàn)的韭赘,希望大家都可以敲一敲,接下來更新的是關(guān)于Pandas庫(kù)的學(xué)習(xí)势就。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泉瞻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苞冯,更是在濱河造成了極大的恐慌瓦灶,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抱完,死亡現(xiàn)場(chǎng)離奇詭異贼陶,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)巧娱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門碉怔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人禁添,你說我怎么就攤上這事撮胧。” “怎么了老翘?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵芹啥,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我铺峭,道長(zhǎng)墓怀,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任卫键,我火速辦了婚禮傀履,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘莉炉。我一直安慰自己钓账,他們只是感情好碴犬,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著梆暮,像睡著了一般服协。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上啦粹,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天蚯涮,我揣著相機(jī)與錄音,去河邊找鬼卖陵。 笑死遭顶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的泪蔫。 我是一名探鬼主播棒旗,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼撩荣!你這毒婦竟也來了铣揉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤餐曹,失蹤者是張志新(化名)和其女友劉穎逛拱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體台猴,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朽合,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了饱狂。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片曹步。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖休讳,靈堂內(nèi)的尸體忽然破棺而出讲婚,到底是詐尸還是另有隱情,我是刑警寧澤俊柔,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布筹麸,位于F島的核電站,受9級(jí)特大地震影響雏婶,放射性物質(zhì)發(fā)生泄漏物赶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一尚骄、第九天 我趴在偏房一處隱蔽的房頂上張望块差。 院中可真熱鬧侵续,春花似錦倔丈、人聲如沸憨闰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)鹉动。三九已至,卻和暖如春宏邮,著一層夾襖步出監(jiān)牢的瞬間泽示,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工蜜氨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留械筛,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓飒炎,卻偏偏與公主長(zhǎng)得像埋哟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子郎汪,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348

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

  • 一赤赊、numpy概述 numpy(Numerical Python)提供了python對(duì)多維數(shù)組對(duì)象的支持:ndar...
    L_steven的貓閱讀 3,459評(píng)論 1 24
  • 1.ndarray數(shù)據(jù)結(jié)構(gòu) 2.創(chuàng)建ndarray 3.ndarray的數(shù)據(jù)類型 4.數(shù)組和標(biāo)量之間的運(yùn)算 5.基...
    一ke大白菜閱讀 1,698評(píng)論 0 6
  • 前言 numpy是支持 Python語(yǔ)言的數(shù)值計(jì)算擴(kuò)充庫(kù),其擁有強(qiáng)大的高維度數(shù)組處理與矩陣運(yùn)算能力煞赢。除此之外抛计,nu...
    TensorFlow開發(fā)者閱讀 3,205評(píng)論 0 35
  • 文/曲小諾 親愛的小孩,感謝你來到我的生命中照筑,于我而言吹截,這的確是一次美好的遇見。 親愛的小孩凝危,感謝你讓我學(xué)會(huì)了如何...
    曲小諾閱讀 397評(píng)論 1 1
  • 原創(chuàng)翻譯 節(jié)選自《粉色大腦VS藍(lán)色大腦》 青春期少男少女們都在想些什么媒抠?荷爾蒙的爆發(fā)使他們生長(zhǎng)發(fā)育的身體發(fā)生了巨大...
    Crystal20181閱讀 1,842評(píng)論 1 4