arr1 = np.array([[1, 2], [3, 4], [5, 6]])
(1)def insert(arr, obj, values, axis=None)??? 向array指定位置插入指定值
axis為默認值None時,如果array是多維數據,則先將array轉化成向量obj:插入的索引,接受int或者多個int的元組貨列表。values:插入的值,接受單個或多個值,axis為默認值None時有以下情況:values:單個值,obj:單個值: 在原array索引處插入單個值values:多個值,obj:單個值: 在原array索引處插入多個值values:單個值,obj:多個值: 在原array多個索引處都插入單個值values:多個值,obj:多個值: values數量與obj數量必須相等,在原array多個索引處插入相應的值
arr_insert1 = np.insert(arr1, [1], [10, 9])
arr_insert2 = np.insert(arr1, [1, 2], [10])
arr_insert3 = np.insert(arr1, [1, 2], [10, 9])
axis:插入的維度,只接受單個int如果values是單個值,則插入的值尺寸自動匹配array在該維度的元素的尺寸,如果是多個值,則values的尺寸必須等于array在該維度的元素的尺寸
arr_insert4 = np.insert(arr1, 1, (9, 10, 11), 1)
arr_insert5 = np.insert(arr1, (1, 2), 10, 0)
arr_insert6 = np.insert(arr1, (1, 2), ((9, 10), (10, 11)), 0)
(2)vstack:向0維(fist axis)追加數據,0維尺寸會增加:
????????def vstack(tup, *, dtype=None, casting="same_kind")
tup = (目標array,追加array),追加array可以傳多個array追加array與目標array必須有相同的維度,只在0維/fist axis 上的形狀可以不同,其他維度形狀必須相同
arr_vstack1 = np.vstack((arr1, [7, 8], (9, 9)))
arr_vstack2 = np.vstack((arr1, [(7, 8), (8, 9), (9, 10)]))
arr2 = np.array([[[1, 2], [3, 4], [5, 6]]])arr2是3維array,目標array也必須傳3維arrayarr_vstack3 = np.vstack((arr2, [[(7, 8), (8, 9), (9, 10)]], [[(7, 8), (8, 9), (9, 10)]]))
(3)hstack:向1維(second axis)追加數據,1維尺寸會增加:
????????def hstack(tup, *, dtype=None, casting="same_kind")
tup = (傳目標array,追加array),追加array可以傳多個array追加array與目標array必須有相同的維度,只在1維/second axis 上的形狀可以不同,其他維度形狀必須相同
append_array1 = np.array((1, 1, 1))
append_array1 = append_array1.reshape(-1, 1)arr_hstack1 = np.hstack((arr1, append_array1))append_array2 = np.array((1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1))
append_array2 = append_array2.reshape(3, -1, 2)arr_hstack2 = np.hstack((arr_vstack3, append_array2))
(4)def delete(arr, obj, axis=None) 刪除目標array指定軸(維度)指定索引的數據
arr:目標arrayobj:要刪除數據的索引,接收int或int元組,必須參數axis:要刪除的數據所在的維度,只接受int。如果不傳參,則會現將array轉化為向量在做刪除操作arr_del1 = np.delete(arr_vstack3, 1)
arr_del2 = np.delete(arr_vstack3, (0, 1), axis=1)
(5)使用bool過濾進行指定刪除,結果數據的最高維度自動降維為(目標array的最高維度 - 判斷維度的最高維度)
arr3 = np.array([(1, 1, 1, 1), (2, 2, 0, 2), (3, 3, 3, 3), (4, 4, 0, 4)])
temp_bool1 = arr3[:, 2] == 0
arr_del_bool1 = arr3[~temp_bool1]
目標array最高維度是1,判斷結果最高維度是0,結果數據最高維度是1
arr_vstack3[1, 1, 1] = 0
arr4 = arr_vstack3
temp_bool2 = arr4[:, :, :] == 0
arr_del_bool2 = arr4[~temp_bool2]
目標array最高維度是2,判斷結果最高維度是2,結果數據最高維度是0
?