溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python人工智能常用庫Numpy使用入門

發(fā)布時間:2020-08-15 03:44:50 來源:ITPUB博客 閱讀:156 作者:ckxllf 欄目:編程語言

  第一章 jupyter notebook簡單教程

  命令模式按鍵esc開啟

  Enter : 轉入編輯模式

  Shift-Enter : 運行本單元,選中下個單元

  Ctrl-Enter : 運行本單元

  Alt-Enter : 運行本單元,在其下插入新單元

  Y : 單元轉入代碼狀態(tài)

  M :單元轉入markdown狀態(tài)

  Z : 恢復刪除的最后一個單元

  第二章 numpy簡單教程

  2.1 數(shù)組

  import numpy as np

  a = np.array([1, 2, 3])

  print(a)

  #out

  [1 2 3]

  a

  #out

  array([1, 2, 3])

  type(a)

  #out

  numpy.ndarray

  a.shape

  #out

  (3,)

  # reshape(1, -1)中1代表設置數(shù)組為1行 , -1代表一個占位符 , 表示a數(shù)組列數(shù)

  # reshape()中-1可以作為行的占位符也可以作為列的占位符

  a = a.reshape(1, -1)

  a.shape

  #out

  (1, 3)

  a = np.array([1, 2, 3, 4, 5, 6])

  a.shape

  #out

  (6,)

  a = a.reshape(2,-1)

  a.shape

  #out

  (2, 3)

  a

  #out

  array([[1, 2, 3],

  [4, 5, 6]])

  a = a.reshape(-1, 2)

  a.shape

  #out

  (3, 2)

  a[2, 0]

  #out

  5

  a[2, 0] = 55

  a[2, 0]

  #out

  55

  # zeros用于創(chuàng)建元素全部為0的矩陣數(shù)組

  a = np.zeros((3, 3))

  a

  #out

  array([[0., 0., 0.],

  [0., 0., 0.],

  [0., 0., 0.]])

  # ones用于創(chuàng)建元素全部為1的矩陣數(shù)組

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

  a

  #out

  array([[1., 1., 1.],

  [1., 1., 1.],

  [1., 1., 1.]])

  # zeros ones函數(shù)也完全可以用full函數(shù)實現(xiàn)

  a = np.full((2, 3), 0)

  a

  #out

  array([[0, 0, 0],

  [0, 0, 0]])

  # eye函數(shù)用于創(chuàng)建單位矩陣

  a = np.eye(3)

  a

  #out

  array([[1., 0., 0.],

  [0., 1., 0.],

  [0., 0., 1.]])

  # random.random用戶創(chuàng)建數(shù)值為0-1之間的隨機二維數(shù)組

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

  a

  #out

  array([[0.54627035, 0.49586489, 0.6976645 ],

  [0.76596824, 0.95951819, 0.7515421 ]])

  2.2 數(shù)組索引操作

  # indexing : 數(shù)組索引

  a = np.array([[1, 2, 3, 4],

  [5, 6, 7, 8],

  [9, 10, 11, 12]])

  # -2代表數(shù)組的倒數(shù)第二行 , 1:3代表從第一列開始往后兩個元素

  a[-2:, 1:3]

  #out

  array([[ 6, 7],

  [10, 11]])

  # 取倒數(shù)第二行 , 第三列元素

  a[-2, 3]

  #out

  8

  a

  #out

  array([[ 1, 2, 3, 4],

  [ 5, 6, 7, 8],

  [ 9, 10, 11, 12]])

  a.shape

  #out

  (3, 4)

  # 將數(shù)組a倒數(shù)第二行開始到最后一行 , 從第一列往后兩列元素賦值給b數(shù)組

  b = a[-2:, 1:3]

  a

  #out

  array([[ 1, 2, 3, 4],

  [ 5, 6, 7, 8],

  [ 9, 10, 11, 12]])

  b

  #out

  array([[ 6, 7],

  [10, 11]])

  b.shape

  #out

  (2, 2)

  # 指定為索引為的2行

  b = a[2, 1:3]

  b

  #out

  array([10, 11])

  b.shape

  #out

  (2,)

  b = a[1, 2]

  b

  #out

  7

  b.shape

  #out

  ()

  b = a[2:3, 1:3]

  b

  #out

  array([[10, 11]])

  b.shape

  #out

  (1, 2)

  # 將數(shù)組的3行的1列 + 10

  a[np.arange(3), 1] += 10

  a

  #out

  array([[ 1, 12, 3, 4],

  [ 5, 16, 7, 8],

  [ 9, 20, 11, 12]])

  a[np.arange(2), 3] += 100

  a

  #out

  array([[ 1, 12, 3, 104],

  [ 5, 16, 7, 108],

  [ 9, 20, 11, 12]])

  # 產(chǎn)生一個0,1,2的數(shù)組 , 不包含3

  np.arange(3)

  #out

  array([0, 1, 2])

  # 產(chǎn)生一個從3-7的數(shù)組 , 不包含7

  np.arange(3,7)

  #out

  array([3, 4, 5, 6])

  a[np.arange(3), [1,1,1]] += 10

  a

  #out

  array([[ 1, 22, 3, 104],

  [ 5, 26, 7, 108],

  [ 9, 30, 11, 12]])

  a[[0,1,2], [1,1,1]] += 10

  a

  #out

  array([[ 1, 32, 3, 104],

  [ 5, 36, 7, 108],

  [ 9, 40, 11, 12]])

  # 判斷數(shù)組a中大于10的值

  result_index = a>10

  result_index

  #out

  array([[False, True, False, True],

  [False, True, False, True],

  [False, True, True, True]])

  a[result_index]

  #out

  array([ 32, 104, 36, 108, 40, 11, 12])

  a[a>10]

  #out

  array([ 32, 104, 36, 108, 40, 11, 12])

  2.3 元素數(shù)組類型

  a = np.array([1,2,3])

  a.dtype

  #out

  dtype('int64')

  a = np.array([1.1, 2.2])

  a.dtype

  #out

  dtype('float64')

  a = np.array([1.1, 1, 'a'])

  a

  #out

  array(['1.1', '1', 'a'], dtype='

  # 將float型數(shù)組轉化成int型

  a = np.array([1.1, 2.2], dtype=np.int64)

  a

  #out

  array([1, 2])

  # 將a數(shù)組賦值給b數(shù)組 , 同時設置元素類型為int

  b = np.array(a, dtype=np.int64)

  b

  #out

  array([1, 2])

  2.3 數(shù)組運算與常用函數(shù)

  numpy中的數(shù)學運算

  a = np.array([[1,2],

  [3,4]])

  b = np.array([[5,6],

  [6,5]])

  # 加法

  a+b

  #out

  array([[6, 8],

  [9, 9]])

  np.add(a,b)

  #out

  array([[6, 8],

  [9, 9]])

  # 減法

  a-b

  #out

  array([[-4, -4],

  [-3, -1]])

  np.subtract(a,b)

  #out

  array([[-4, -4],

  [-3, -1]])

  # 乘法

  a*b

  #out

  array([[ 5, 12],

  [18, 20]])

  np.multiply(a,b)

  #out

  array([[ 5, 12],

  [18, 20]])

  # 除法

  a/b

  #out

  array([[0.2 , 0.33333333],

  [0.5 , 0.8 ]])

  np.divide(a,b)

  #out

  array([[0.2 , 0.33333333],

  [0.5 , 0.8 ]])

  # 開方

  np.sqrt(a)

  #out

  array([[1. , 1.41421356],

  [1.73205081, 2. ]])

  a

  #out

  array([[1, 2],

  [3, 4]])

  b = np.array([[1,2,3],

  [4,5,6]]) 無錫人流醫(yī)院哪家好 http://www.wxbhnkyy120.com/

  # dot : 是將a數(shù)組與b數(shù)組矩陣相乘的結果

  a.dot(b)

  #out

  array([[ 9, 12, 15],

  [19, 26, 33]])

  np.dot(a,b)

  #out

  array([[ 9, 12, 15],

  [19, 26, 33]])

  numpy中的常用函數(shù)

  # sum : 求和函數(shù)

  # 計算數(shù)組中全部元素的和

  a = np.array([[1,2],

  [3,4]])

  np.sum(a)

  #out

  10

  # 將數(shù)組中的每一列進行求和操作

  np.sum(a, axis=0)

  #out

  array([4, 6])

  # 將數(shù)組中的每一行進行求和操作

  np.sum(a, axis=1)

  #out

  array([3, 7])

  # mean : 求平均值函數(shù)

  # 計算數(shù)組的平均值

  np.mean(a)

  #out

  2.5

  # 計算數(shù)組每一列的平均值

  np.mean(a, axis=0)

  #out

  array([2., 3.])

  # 計算數(shù)組每一行的平均值

  np.mean(a, axis=1)

  #out

  array([1.5, 3.5])

  # uniform : 用戶生成一個指定范圍內的隨機數(shù)值

  np.random.uniform(3,4)

  #out

  3.247709331922638

  # tile : 用于將一個數(shù)組作為一個元素重復指定的次數(shù)

  a

  #out

  array([[1, 2],

  [3, 4]])

  # 將數(shù)組在行上重復1次, 在列上重復2次

  np.tile(a, (1,2))

  #out

  array([[1, 2, 1, 2],

  [3, 4, 3, 4]])

  # 將數(shù)組在行上重復1次, 在列上重復3次

  np.tile(a, (1,3))

  #out

  array([[1, 2, 1, 2, 1, 2],

  [3, 4, 3, 4, 3, 4]])

  # argsort : 將數(shù)組中的元素進行排序 , 默認從小到大

  a = np.array([[1,12,3,104],

  [5,10,1,3]])

  # 按照數(shù)組下標將元素排好

  np.argsort(a)

  #out

  array([[0, 2, 1, 3],

  [2, 3, 0, 1]])

  # 將每一列進行排序

  a.argsort(axis=0)

  #out

  array([[0, 1, 1, 1],

  [1, 0, 0, 0]])

  # T : 矩陣轉置

  a

  #out

  array([[ 1, 12, 3, 104],

  [ 5, 10, 1, 3]])

  a.T

  #out

  array([[ 1, 5],

  [ 12, 10],

  [ 3, 1],

  [104, 3]])

  # 使用transpose函數(shù)將數(shù)組轉置

  np.transpose(a)

  #out

  array([[ 1, 5],

  [ 12, 10],

  [ 3, 1],

  [104, 3]])

  2.4 廣播

  廣播

  可以將不同維度的數(shù)組進行相加 , numpy會將不同維度的數(shù)組轉化成相同維度的數(shù)組 , 廣播會在缺失維度和一維的數(shù)組上進行操作

  a = np.array([[1, 2, 3],

  [5, 6, 7],

  [9, 10, 11]])

  b = np.array([1,2,3])

  # 將b數(shù)組加到a數(shù)組的每一行

  for i in range(3):

  a[i, :] += b

  a

  #out

  array([[ 2, 4, 6],

  [ 6, 8, 10],

  [10, 12, 14]])

  # 將b數(shù)組行上重復3次 , 列上重復1次 , 與a相加

  a + np.tile(b, (3,1))

  #out

  array([[ 3, 6, 9],

  [ 7, 10, 13],

  [11, 14, 17]])

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI