第七天,numpy初探

2021-09-11 12:36:06 字數 3004 閱讀 3554

為什麼直接進入 numpy了呢,因為我走人工智慧的路線,所以先了解這個陣列模組的一些基礎知識,然後穿插更深一級的語法,這樣會有用一點,我個人感覺,不管好壞,先看看numpy裡有些什麼吧。我現在用的是anaconda的jupyter notebook 為了安裝它可花了不少時間。

先看看學了什麼。

輸出乙個陣列

import numpy as np

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

aout[9]:

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

np.array()裡面的陣列可以是多維的,理論上可以輸出n維陣列

檢視 陣列是多少維度的,使用x.ndim方法,x是陣列

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

b.ndim # b.nidm 指的是陣列的維度 判斷的方式就是看有幾個方括號就是幾維陣列

輸出是:

2

接著就是 檢視是多少行多少列的方法 x.shape x是陣列。 翻譯過來就是 x的形狀

b.shape  # 陣列屬性,有多少行,多少列

輸出:(3,2) # 3行 兩列

如何生成乙個連續陣列呢?比如我想輸出 0到10內步進為1的陣列呢?

numpy有乙個叫做arange的方法 輸出乙個連續的陣列

c = np.arange(1,50,5)  # arange() 生成乙個連續陣列,範圍是 1 到 50 然後步進是5

carray([ 1, 6, 11, 16, 21, 26, 31, 36, 41, 46])

如果想輸出規定範圍內等分的陣列呢?

單詞 linspace 等分的意思

d = np.linspace(0,20,12)   # np.linspace(0,20,12)  把0到20等分12分,然後輸出

darray([ 0. , 1.81818182, 3.63636364, 5.45454545, 7.27272727,

9.09090909, 10.90909091, 12.72727273, 14.54545455, 16.36363636,

18.18181818, 20. ])

好,今天就先記住這幾個,今天是2019.2.27

未完待續。。。。。。

2.28 接上~

np.ones(pra) 這是個輸出1的陣列,根據引數來輸出

如果是np.ones(5),則會輸出一維陣列 5個1

如果給定乙個陣列引數或者元組引數 ,則會輸出乙個 行列為引數的二維陣列 比如:

np.ones([3,3])  # 這個是返回乙個跟輸入相同型別的陣列,容量由輸入引數決定

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

[1., 1., 1.],

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

另外乙個就是np.zeros(5) 這個操作和 np.ones(5)一樣

np.zeros([4,3],dtype='int')  # 根據輸入引數型別輸出相應的0;

array([[0, 0, 0],

[0, 0, 0],

[0, 0, 0],

[0, 0, 0]])

numpy.eye(n,m=none, k=0, dtype=)

這個是輸出乙個對角線陣列,如果只輸入乙個整數,則會輸出 行列都是這個整數的陣列,並且會在第乙個數字開始左上角到右下角的對角線

如果輸入第二個引數,則變為 第乙個為行 第二個為列

第三個引數是對角線開始的地方,如果k=0,則從左邊第乙個數字開始到右下角

如果是 -1 則 從-1位置開始往下對角 ,也就是從第一列的第二個數字開始往下對角

同理 k = 1 從第一行第二個數字開始往下對角

看**

np.eye(4,4,-1)  # 如果只輸乙個引數,則返回行數列數都是該引數的且對角線是1的陣列,第二個引數是 指定多少列,

#第三個引數從第幾列開始對角線 (如果有兩個引數,則第乙個是行數,第二個數列數)

# 引數 4,4,-1 表示 行是4 列是4 從-1列開始輸出對角線

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

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

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

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

下乙個是 隨機數組

np.random.randn(2,3)   # 隨機輸出 指定引數的陣列  輸出為浮點數

array([[-0.12691544, 0.32523151, 0.35195496],

[-0.05785743, 1.90173634, 0.05631528]])

np.random.randint(0,10,5) # 輸出為整數

array([3, 9, 2, 8, 6])

下乙個是 把一維陣列變成二維陣列的函式

e = np.arange(0,51,10).reshape(6,1) + np.arange(6)

'''第乙個 np.arang(0,51,5) 輸出 0到50 步進為5的一維陣列,

第二個 .reshape(6,1) 是把陣列改變成二維陣列,並且行數是6,列為1

第三個 + np.range(6) 是把前邊的6行1列的陣列擴大,每一行都輸出6個連續的數字

'''e

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

[10, 11, 12, 13, 14, 15],

[20, 21, 22, 23, 24, 25],

[30, 31, 32, 33, 34, 35],

[40, 41, 42, 43, 44, 45],

[50, 51, 52, 53, 54, 55]])

2.28 未完待續。。。。。。。

實習第七天

昨天經理說今天會刮颱風,所以我們要求停課比較好,畢竟我是乙個非常熱愛生命的人,這絕對不是因為我小時候差點被颱風刮走,真的不是因為這個!可是今天一大早,天氣很涼快,可是再如何涼快,還是沒有暴風雨即將來臨的感覺,為此我們捶胸頓足,為什麼停課,停課也不得不去,因為我們還得以實習生的身份過去,說起這ppt,...

第七天筆記

理解 陣列的基本概念 理解 陣列的分類 陣列的幾個名詞 陣列的應用場景 按維度分類 掌握 定義陣列 掌握 初始化陣列 掌握 陣列的使用 指定陣列的元素個數,對陣列進行部分顯式初始化 不指定元素個數,定義的同時初始化,它是根據大括號中的元素的個數來確定陣列的元素 個數 int nums 指定元素個數,...

工作第七天

dns是一種阻止層域層次結構的計算機和網路服務命名系統,它用於tcp ip網路,他從事將主機名或網域名稱轉換為實際ip位址的工作 dns domain name system 負責解析url uniform resource locator 其中有遞迴查詢 詢問人改變,詢問內容不變,詢問物件沒有 和...