python學習筆記 Day2 Numpy陣列

2022-06-16 10:18:09 字數 2552 閱讀 9489

1. 實現兩個陣列相加,在資料量特別大的時候

產生陣列:

(1)  從列表產生陣列:a=[0,1,2,3]

a=np.array(1)

a(2)  從列表傳入

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

(3)  生成全0的陣列

np.zeros(5)

(4)  生成全1的陣列

np.ones(5,dtype=』bool』)àdtype可以用來指定資料型別

(5)  可以使用fill方法將陣列設為指定值

(6)  生成整數序列

a=np.arange(1,10)從1開始生成資料,一直到9

(7)  生成等差數列

a=np.linspace(1,10,10)從1到10總共10個等差數列

(8)  生成隨機數

a=np.random.rand(10)

(9)  生成具有服從標準正態的隨機數

a=np.random.randn(10)

(10)  生成隨機整數

a=np.random.randint(10)

2. 檢視型別

(1)  檢視陣列型別

type(a)

(2)  檢視陣列中的資料型別

a.dtype

(3)  檢視形狀

a.shape

(4)  檢視陣列元素的個數

a.size

(5)  檢視維度

a.ndim

3. 索引和切片

(1)  索引第乙個元素

(2)  修改第乙個元素的值,切片:支援負索引

4. 多維陣列及其屬性

可以利用array來實現二維陣列

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

[5,6,7,8]])

5. 多維陣列索引

對於二維陣列,可以傳入兩個數來索引:

[[1,2,3,4],

[5,6,7,8]]

a[1,3]à其中1是行索引,3是列索引,中間用逗號隔開,事實上python會將他們看作乙個元組(1,3),然後按照順序進行對應,可以利用索引給他們賦值

事實上,我們還可以使用單個索引來索引一整行內容

a[1]

python會將這個單元組當成對第一維的索引,然後返回對應的內容

a[:,1]

這樣的寫法是第二列的內容

6. 多維陣列切片

f=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])

想得到第一行的第4和第5個元素

f[0,3:5]

想得到最後兩行的最後兩列

f[2:,2:]

每一維都支援切片的規則,包括負索引

想要隔行取:f[2::2,2::2]

7. 切片是引用

切片在記憶體中使用的是引用機制,引用機制意味著python並沒有為b分配新的空間來儲存他的值,而是讓b指向a所分配的記憶體空間,因此b會改變a的值,而這種現象在列表中並不會出現

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

b=a[1:4]

b[1]=100

此時a的對應的值會發生改變

乙個解決方案就是使用copy()方法產生乙個複製,複製操作即會申請乙個新的空間

8. 花式索引

(1)  一維花式索引

a=np.arange([0,100,10])

index=[1,2,-3]

y=a[index]

y索引出來的即為10,20,70

(2)  利用布林陣列花式索引

(3)  二維花式索引

(4)  不完全索引

只給定行索引的時候,返回整行

y=a[:3]

9. where語句

where函式會返回所有非零元素的索引

(1)  一維陣列

判斷陣列中的元素是不是大於3

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

a>3

則會返回[false false false true true true]

若要陣列中所有大於3的元素的索引位置:

np.where(a>3)

where返回值是乙個元組,返回的是索引位置

10.陣列型別轉換

(1)  當陣列內元素型別不相同時

a=np.array([1.3,-2],dtype=float)

(2)  將其強制轉換

(3)  astype方法-返回乙個新陣列

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

b=a.astype(float)

11.陣列排序

(1)  sort函式

a=np.array([3212,4343,2121,5442])

b=np.sort(a)

(2)  argsort函式

argsort返回從小到大的排列在陣列中的索引位置

(3)   

12.求和np.sum()

13.最大值np.max()

14.最小值np.min()

15.均值np.mean()

16.標準差np.cov()

Day2 Python學習筆記

1.1 if else 只考慮一種情況 例 print 111 if 5 4 print 222 print 333 考慮兩種情況,且為互補關係。例 if 4 5 print 4 5 else print 5 4 1.2 if elif else 考慮多種情況。例 score int input 請...

Day2 Python學習筆記

師從 小甲魚 and 與運算 or 或運算 not 非運算 非0整數全解釋為true randint隨機輸入乙個數字,randint a,b 隨機輸入乙個a b之間的數字。需import random。import random print 我愛兜兜 answer random.randint 1,...

python學習筆記 day2

函式之間或類的方法之間使用空行分隔,表示乙個新的開始,類和函式入口之間也用空行分隔。空格不是語法的一種,但是最好這樣做,為了方便閱讀和日後的維護 input n按下enter後退出 n value input n請輸入 n print value 接收輸入的資訊並列印python支援同一行內編寫多行...