- 返回各維度元組
print(img.shape)
- 返回大小
img.size
- 返回各維度數據類型
print(img.dtype)
- 數據類型變int8
mask=mask.astype(np.int8)
注意int32可變float64
但float64變int32會把小數截斷
string_可變float64
NumPy常見操作:
import numpy as np
創建一個一維數組
arr = np.array([1, 2, 3, 4, 5])
print(“原始數組:”, arr)
對數組進行求和
sum_result = np.sum(arr)
print(“求和結果:”, sum_result)
對數組進行均值計算
mean_result = np.mean(arr)
print(“均值結果:”, mean_result)
對數組進行最大值計算
max_result = np.max(arr)
print(“最大值結果:”, max_result)
對數組進行排序
sort_result = np.sort(arr)
print(“排序結果:”, sort_result)
#創建一個二維數組
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(“二維數組:”, arr)
#創建一個全為零的數組
zeros_arr = np.zeros((2, 3))
print(“全零數組:”, zeros_arr)
#創建一個全為一的數組
ones_arr = np.ones((3, 2))
print(“全一數組:”, ones_arr)
#創建一個隨機數組
random_arr = np.random.rand(2, 3)
print(“隨機數組:”, random_arr)
arr = np.array([1, 2, 3, 4, 5])
#訪問數組的元素
print(“第一個元素:”, arr[0])
print(“最后一個元素:”, arr[-1])
print(“切片操作:”, arr[1:4])
#修改數組的元素
arr[2] = 10
print(“修改后的數組:”, arr)
#數組形狀操作
print(“數組形狀:”, arr.shape)
#數組重塑
reshape_arr = arr.reshape((5, 1))
print(“重塑后的數組:”, reshape_arr)
數組轉置
transpose_arr = arr.T
print(“轉置后的數組:”, transpose_arr)
數組計算:
python
復制
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
數組加法
add_result = arr1 + arr2
print(“數組加法結果:”, add_result)
數組減法
sub_result = arr1 - arr2
print(“數組減法結果:”, sub_result)
數組乘法
mul_result = arr1 * arr2
print(“數組乘法結果:”, mul_result)
數組除法
div_result = arr1 / arr2
print(“數組除法結果:”, div_result)
數組平方
square_result = np.square(arr1)
print(“數組平方結果:”, square_result)
數組平方根
sqrt_result = np.sqrt(arr1)
print(“數組平方根結果:”, sqrt_result)
- 數組拼接:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 水平拼接
hstack_result = np.hstack((arr1, arr2))
print("水平拼接結果:", hstack_result)# 垂直拼接
vstack_result = np.vstack((arr1, arr2))
print("垂直拼接結果:", vstack_result)# 深度拼接
dstack_result = np.dstack((arr1, arr2))
print("深度拼接結果:", dstack_result)
- 數組索引和切片:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 使用索引獲取特定元素
print("索引獲取元素:", arr[0, 1])# 使用切片獲取子數組
print("切片獲取子數組:", arr[1:, :2])
- 數組統計函數:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 求和
sum_result = np.sum(arr)
print("求和結果:", sum_result)# 均值
mean_result = np.mean(arr)
print("均值結果:", mean_result)# 標準差
std_result = np.std(arr)
print("標準差結果:", std_result)# 方差
var_result = np.var(arr)
print("方差結果:", var_result)# 最小值
min_result = np.min(arr)
print("最小值結果:", min_result)# 最大值
max_result = np.max(arr)
print("最大值結果:", max_result)
- 數組的廣播:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 廣播加法
broadcast_add_result = arr1 + arr2
print("廣播加法結果:", broadcast_add_result)# 廣播乘法
broadcast_mul_result = arr1 * arr2
print("廣播乘法結果:", broadcast_mul_result)
- 數組的邏輯運算:
import numpy as nparr1 = np.array([True, False, True])
arr2 = np.array([False, True, True])# 邏輯與
and_result = np.logical_and(arr1, arr2)
print("邏輯與結果:", and_result)# 邏輯或
or_result = np.logical_or(arr1, arr2)
print("邏輯或結果:", or_result)# 邏輯非
not_result = np.logical_not(arr1)
print("邏輯非結果:", not_result)
- 數組的矩陣運算:
import numpy as npmatrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])# 矩陣乘法
matmul_result = np.matmul(matrix1, matrix2)
print("矩陣乘法結果:", matmul_result)# 矩陣轉置
transpose_result = np.transpose(matrix1)
print("矩陣轉置結果:", transpose_result)# 矩陣求逆
inv_result = np.linalg.inv(matrix1)
print("矩陣求逆結果:", inv_result)
- 數組的隨機數生成:
import numpy as np# 生成服從正態分布的隨機數
normal_arr = np.random.normal(loc=0, scale=1, size=(3, 3))
print("正態分布隨機數:", normal_arr)# 生成均勻分布的隨機數
uniform_arr = np.random.uniform(low=0, high=1, size=(3, 3))
print("均勻分布隨機數:", uniform_arr)# 隨機打亂數組
arr = np.array([1, 2, 3, 4, 5])
np.random.shuffle(arr)
print("隨機打亂數組:", arr)
- 數組的元素統計:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 求和
sum_result = np.sum(arr)
print("求和結果:", sum_result)# 按行求和
row_sum_result = np.sum(arr, axis=1)
print("按行求和結果:", row_sum_result)# 按列求和
column_sum_result = np.sum(arr, axis=0)
print("按列求和結果:", column_sum_result)# 最大值
max_result = np.max(arr)
print("最大值結果:", max_result)# 按行找到最大值
row_max_result = np.max(arr, axis=1)
print("按行找到最大值結果:", row_max_result)# 按列找到最大值
column_max_result = np.max(arr, axis=0)
print("按列找到最大值結果:", column_max_result)
- 數組的形狀操作:
import numpy as nparr = np.array([1, 2, 3, 4, 5, 6])# 改變數組形狀為二維
reshape_result = np.reshape(arr, (2, 3))
print("改變形狀后的數組:", reshape_result)# 展平數組
flatten_result = arr.flatten()
print("展平數組:", flatten_result)# 轉置數組
transpose_result = np.transpose(arr)
print("轉置數組:", transpose_result)
- 數組的數學函數:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 求平方根
sqrt_result = np.sqrt(arr)
print("平方根結果:", sqrt_result)# 求指數
exp_result = np.exp(arr)
print("指數結果:", exp_result)# 求對數
log_result = np.log(arr)
print("對數結果:", log_result)
- 數組的排序:
import numpy as nparr = np.array([3, 1, 5, 2, 4])# 升序排序
sorted_arr = np.sort(arr)
print("升序排序結果:", sorted_arr)# 降序排序
reverse_sorted_arr = np.sort(arr)[::-1]
print("降序排序結果:", reverse_sorted_arr)# 按列排序
arr = np.array([[3, 1, 5], [2, 4, 6]])
column_sorted_arr = np.sort(arr, axis=0)
print("按列排序結果:", column_sorted_arr)# 按行排序
row_sorted_arr = np.sort(arr, axis=1)
print("按行排序結果:", row_sorted_arr)
- 數組的去重:
import numpy as nparr = np.array([1, 2, 3, 2, 4, 1])# 去除重復元素
unique_arr = np.unique(arr)
print("去重結果:", unique_arr)# 返回去重元素的索引
unique_indices = np.unique(arr, return_index=True)[1]
print("去重元素的索引:", unique_indices)
- 數組的布爾運算:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 判斷數組元素是否大于2
greater_than_2 = arr > 2
print("大于2的元素:", arr[greater_than_2])# 判斷數組元素是否滿足條件
condition = (arr > 2) & (arr < 5)
print("滿足條件的元素:", arr[condition])# 使用布爾數組作為索引
bool_index = np.array([True, False, True, False, True])
print("使用布爾數組作為索引:", arr[bool_index])
- 數組的廣播:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([[4], [5], [6]])# 廣播數組相加
broadcast_result = arr1 + arr2
print("廣播相加的結果:", broadcast_result)# 廣播數組相乘
broadcast_multiply_result = arr1 * arr2
print("廣播相乘的結果:", broadcast_multiply_result)
- 數組的數據類型:
import numpy as nparr = np.array([1, 2, 3])# 查看數組數據類型
dtype = arr.dtype
print("數組的數據類型:", dtype)# 修改數組數據類型
arr_float = arr.astype(float)
print("修改數據類型后的數組:", arr_float)
- 數組的索引和切片:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 獲取數組元素
element = arr[2]
print("索引獲取數組元素:", element)# 切片獲取子數組
sub_array = arr[1:4]
print("切片獲取子數組:", sub_array)# 布爾數組索引
bool_arr = np.array([True, False, True, False, True])
bool_indexing_result = arr[bool_arr]
print("布爾數組索引結果:", bool_indexing_result)
- 數組的形狀操作:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6]])# 獲取數組形狀
shape = arr.shape
print("數組形狀:", shape)# 改變數組形狀
reshape_arr = arr.reshape(3, 2)
print("改變形狀后的數組:", reshape_arr)# 展平數組
flatten_arr = arr.flatten()
print("展平數組:", flatten_arr)
- 數組的元素操作:
import numpy as nparr = np.array([1, 2, 3, 4, 5])# 數組元素加法
addition_result = arr + 2
print("數組元素加法結果:", addition_result)# 數組元素乘法
multiplication_result = arr * 3
print("數組元素乘法結果:", multiplication_result)# 數組元素平方
square_result = np.square(arr)
print("數組元素平方結果:", square_result)# 數組元素開方
sqrt_result = np.sqrt(arr)
print("數組元素開方結果:", sqrt_result)
- 數組的統計計算:
import numpy as nparr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])# 計算數組元素的和
sum_result = np.sum(arr)
print("數組元素的和:", sum_result)# 計算數組元素的平均值
mean_result = np.mean(arr)
print("數組元素的平均值:", mean_result)# 計算數組元素的標準差
std_result = np.std(arr)
print("數組元素的標準差:", std_result)# 計算數組元素的最大值
max_result = np.max(arr)
print("數組元素的最大值:", max_result)# 計算數組元素的最小值
min_result = np.min(arr)
print("數組元素的最小值:", min_result)
- 數組的邏輯運算:
import numpy as nparr1 = np.array([True, False, True])
arr2 = np.array([False, True, True])# 邏輯與
and_result = np.logical_and(arr1, arr2)
print("邏輯與結果:", and_result)# 邏輯或
or_result = np.logical_or(arr1, arr2)
print("邏輯或結果:", or_result)# 邏輯非
not_result = np.logical_not(arr1)
print("邏輯非結果:", not_result)
- 數組的廣播和矢量化操作:
import numpy as nparr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])# 數組的廣播相加
broadcast_addition = arr1 + arr2
print("廣播相加結果:", broadcast_addition)# 數組的廣播相乘
broadcast_multiplication = arr1 * arr2
print("廣播相乘結果:", broadcast_multiplication)# 數組的矢量化操作
vectorized_operation = np.sin(arr1) + np.cos(arr2)
print("矢量化操作結果:", vectorized_operation)
- 數組的線性代數運算:
import numpy as nparr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])# 矩陣乘法
matrix_multiplication = np.matmul(arr1, arr2)
print("矩陣乘法結果:", matrix_multiplication)# 矩陣的轉置
matrix_transpose = arr1.T
print("矩陣轉置結果:", matrix_transpose)# 矩陣的逆
matrix_inverse = np.linalg.inv(arr1)
print("矩陣逆結果:", matrix_inverse)# 矩陣的行列式
matrix_determinant = np.linalg.det(arr1)
print("矩陣行列式:", matrix_determinant)
- 數組的隨機數生成:
import numpy as np# 生成隨機整數數組
random_int_array = np.random.randint(low=1, high=10, size=(3, 3))
print("隨機整數數組:", random_int_array)# 生成隨機浮點數數組
random_float_array = np.random.rand(2, 2)
print("隨機浮點數數組:", random_float_array)# 生成服從正態分布的隨機數數組
random_normal_array = np.random.normal(loc=0, scale=1, size=(3, 3))
print("服從正態分布的隨機數數組:", random_normal_array)