Python 學習筆記(13)

2021-09-25 22:48:16 字數 1831 閱讀 7445

通過某一些條件去「選擇」相關的元素,choose的操作會比自己使用for-if-else效率要高,類似的還有select函式

1、choose()函式的定義

def choose(a, choices, out=none, mode=『raise』):

說的通俗一點,就是引數a這個陣列的值不能超過choices陣列的維度的最大值,然後a這個陣列中每乙個位置的數,代表的 是choices陣列中的元素的索引,比如:

import numpy as np

control = np.array([[1,0,1],

[2,1,0],

[1,2,2]])

np.choose(control, [10, 11, 12])

呼叫choose會產生乙個和control陣列一樣大小的陣列,這個陣列的每個元素是什麼呢?control第乙個是1,代表在[10,11,12]中的第二個元素,即11,然後第二個是0,即第乙個元素,10,以此類推。

i0 = np.array([[0,1,2],

[3,4,5],

[6,7,8]])

i2 = np.array([[20,21,22],

[23,24,25],

[26,27,28]])

control = np.array([[1,0,1],

[2,1,0],

[1,2,2]])

np.choose(control, [i0, 10, i2])

結果是

array([[10,  1, 10],

[23, 10, 5],

[10, 27, 28]])

即control的第一行第一列的元素是i0陣列的第一行第一列的數,第二行第一列的元素是i2陣列中的第二行第一列的數。

接下來給出兩個覺得很不錯的操作

將陣列中所有小於 10 的值變成了 10

in [4]:

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

[10,11,12],

[20,21,22]])

a < 10

out[4]:

array([[ true, true, true],

[false, false, false],

[false, false, false]], dtype=bool)

in [5]:

np.choose(a < 10, (a, 10))

out[5]:

array([[10, 10, 10],

[10, 11, 12],

[20, 21, 22]])

下面的例子將陣列中所有小於 10 的值變成了 10,大於 15 的值變成了 15。

in [6]:

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

[10,11,12],

[20,21,22]])

lt = a < 10

gt = a > 15

choice = lt + 2 * gt

choice

out[6]:

array([[1, 1, 1],

[0, 0, 0],

[2, 2, 2]])

in [7]:

np.choose(choice, (a, 10, 15))

out[7]:

array([[10, 10, 10],

[10, 11, 12],

[15, 15, 15]])

Python學習筆記 13

本節主要有 集合 集合中只能存放不可變物件 集合中的元素無序且唯一存在,不重複 使用建立集合 s print s type s 使用set建立集合 s 字典s s set 集合s print type s 通過set 來將字典轉化為集合時,只會將鍵儲存在集合中 s set print s s set...

python學習筆記13

通過匯入安裝的第三方csv包的模組可以對csv檔案進行讀寫。讀取的基本方法為方法.reader f 讀取檔案後也可通過函式namedtuple建立的類對映檔案列名,也可以通過方法.dictreader f 讀取csv檔案到字典表。寫入的基本方法為方法.writer f writerow header...

Python學習筆記(13) 類

物件導向程式設計是最有效的軟體編寫方法之一。在物件導向程式設計中,你編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。編寫類時,你定義一大類物件都有的通用行為。基於類建立物件時,每個物件都自動具備這種通用行為,然後可根據需要賦予每個物件獨特的個性。類 class dog def init ...