機器學習 關於numpy程式庫的筆記

2021-08-21 16:16:34 字數 2266 閱讀 3452

一、np.array()

np.array()/1、引數一般是乙個列表,可以將乙個列表轉換為多維陣列。為什麼要將列表轉換為陣列呢?因為列表中儲存的是物件型別,如果是單一的型別,沒有必要用列表,因為這樣會浪費儲存空間,同時也方便運算。

nparr = np.array([i for i in

range(10)])

nparr

結果:array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

2、想要檢視陣列中儲存的資料型別可通過.dtype來檢視。如果資料中有浮點數,則整數也轉化為浮點數型別。

nparr2 = np.array([1,2,3.0])

nparr2.dtype

結果:dtype('float64')

3、還可以通過方法來直接建立特殊的陣列(注意,通過這些方法建立的陣列,其中的填充資料預設型別都為float),如下:

4、np.array的基本操作(x為陣列)

二、np.arange()

1、建立列表我們可以直接用range。

[i for i in

range(0,20,2)]

結果:[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

0和20是指:從0開始但不包括20,2為步長。

2、np提供了np.arange()這個方法可以直接建立陣列,用法同range差不多。傳入前兩個引數,預設步長為1;傳入乙個引數,則是指從0開始,到所傳的引數,步長為1。

np.arange(0,20,2)

結果:array

([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])

np.arange(0,10)

array

([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

np.arange(10)

array

([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

三、np.linspace
np.linspace(0,20,11)

array

([ 0., 2., 4., 6., 8., 10., 12., 14., 16., 18., 20.])

其中0為起始數,20為終止數,11是將0到20(包括20)以平均步長分為11個數。預設型別為float。

四、np.random

np中也封裝了對隨機數產生的方法。

np.random.randint(0,10,size = 10):產生10個0到10的整型數,以一維陣列的形式儲存。(size可省略)

np.random.randint(0,10,size=(3,5)):產生3行5列的0到10 的隨機數組。

np.random.random():產生乙個0到1之間的隨機數。

np.random.random(10):產生10個0到1之間的隨機數,以一維陣列的形式儲存。

np.random.random((3,5)):產生3行5列的0到1的隨機數組。

np.random.normal(mean,stdev,size):給出均值為mean,標準差為stdev的高斯隨機數(場),當size賦值時,例如:size=100,表示返回100個高斯隨機數。

五、np.reshape

np.reshape()可以將乙個一維陣列分割為多維陣列,或者對它進行轉置。

x = array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

x.reshape(2,5)

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

[5, 6, 7, 8, 9]])

x.reshape(2,5)將陣列分割為2行5列的多維陣列。如果不能分割,則會報錯。

x.reshape(5,-1)

array([[0, 1],

[2, 3],

[4, 5],

[6, 7],

[8, 9]])

x.reshape(-1,5)

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

[5, 6, 7, 8, 9]])

-1則是表明為任意行或者列,控制陣列形狀的為另乙個引數。

原創請註明:

機器學習 numpy庫的學習

import numpy as np import random 處理數值型的資料 使用numpy生成陣列,型別為ndarray t1 np.array 1 2,3 print t1 print type t1 t2 np.array range 10 print t2 full填充元素 np.fu...

CI學習之建立程式庫

注意 除了資料庫類和裝載器類無法被擴充套件或替換,剩餘其他類都可以被擴充套件或者替換。建立完全屬於自己的類庫檔案 1.檔名和檔案中定義的類的名字要一樣。並且首字母要大寫的。2.使用自己的類庫的時候,第一步就是要載入這個類庫。也就是 this load library 類名 注意 類名不分大小寫,那就...

我的程式庫 HiCSDB

該庫的目標是簡化c 的資料庫互動操作.在這個庫中,我將資料庫的互動操作抽象為一下幾個函式 1 executenonquery 執行無返回值的操作,例如insert,update,delete等 2 executescalar 獲得查詢結果的第一行第一列.3 executedatatable 查詢多條...