"""
數組中的元素只能是同種數據類型;列表中的元素可以不是同一種數據類型
"""
from typing import List
import numpy as np
LIST = [1,23,4,5]
ARR = np.array(LIST) # 會報錯,沒報錯啊,這數組哎,列表直接轉換數組就行么
print(LIST,ARR)
print('數據類型',type(LIST),type(ARR))
LIST[-1] = 'sjss'
# 下方代碼報錯是由於一旦創建了一個數組,他的dtype也就固定了,它只能存儲相同類型的元素.如何確定相同類型的元素可用dtype()函數來確定
ARR[-1] = 11.22 # ValueError: invalid literal for int() with base 10: 'sjss'
print(ARR,'\n','數組元素的數據類型',ARR.dtype) # 而輸入的是浮點型數據會自動轉換為整型,原數組元素的數據類型是int
# 只要元素的總數不變,數組的形狀就可以隨時改變。例如想要一個數字從0增加的2x4數組
arr1 = np.arange(8) # [0 1 2 3 4 5 6 7];有點類似於range函數
arr2 = np.arange(8).reshape(2,4) # 將數組轉換成2行4列
print("使用reshape轉化后",arr2)
# 改變前后具有相同的記憶
arr3 = arr1.reshape(4,2)
arr1[0] = 1000
print(arr1,arr3)
arr4 = arr1.copy() # copy的話arr4並沒有改變,深度復制么
arr1[0] = 0
print(arr1,arr4)