天天看点

python观察日志(part26)--numpy数组操作

学习笔记,仅供参考,有错必究

数组操作

# 垂直方向和并数组
arr1 = np.array([[1, 2, 3], [0, 0, 1]])
arr2 = np.array([[4, 5, 6], [1, 0, 0]])
np.vstack([arr1, arr2])      
array([[1, 2, 3],
       [0, 0, 1],
       [4, 5, 6],
       [1, 0, 0]])      
# 比较两个矩阵是否相等
# True if two arrays have the same shape and elements, False otherwise.
arr1 = np.array([[0, 0, 1]])
arr2 = np.array([[1, 0, 0]])
arr3 = np.array([[0, 0, 1]])
np.array_equal(arr1, arr2)
np.array_equal(arr1, arr3)      
False






True      
# 多维数组变成1为数组
arr = np.array([[1,2],[3,4]])
arr.ravel()
arr.flatten()      
array([1, 2, 3, 4])






array([1, 2, 3, 4])      
# 查看并更改数组数据类型
arr = np.array([[1, 2], [3, 4]])
arr.dtype
float_arr = arr.astype(np.float32)
float_arr.dtype      
dtype('int32')






dtype('float32')      
# 判断数组中是否包含某个元素
arr = np.array([[1, 2], [3, 4]])
1 in arr
5 in arr      
True






False      
# 矩阵转至
arr = np.array([[1, 2], [3, 4], [5, 6]])
arr.T
arr.transpose()      
array([[1, 3, 5],
       [2, 4, 6]])






array([[1, 3, 5],
       [2, 4, 6]])      
# 调整数组行列方向/增加数组维度
arr = np.array([1, 2, 3])
arr.shape
arr2 = arr[:, np.newaxis]
arr2.shape
arr3 = arr[np.newaxis, :]
arr3.shape      
(3,)






(3, 1)






(1, 3)      
# 合并数组
# Join a sequence of arrays along an existing axis.
arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2])
arr3 = np.array([1, 2, 3, 5])
np.concatenate((arr1, arr2, arr3))

arr1 = np.array([[1, 2], [3, 4], [5, 6]], float)
arr2 = np.array(range(10, 14), float).reshape((2, 2))
arr3 = np.array(range(10, 16), float).reshape((3, 2))
np.concatenate((arr1, arr2), axis = 0)
np.concatenate((arr1, arr3), axis = 1)      
array([1, 2, 3, 1, 2, 1, 2, 3, 5])






array([[ 1.,  2.],
       [ 3.,  4.],
       [ 5.,  6.],
       [10., 11.],
       [12., 13.]])






array([[ 1.,  2., 10., 11.],
       [ 3.,  4., 12., 13.],
       [ 5.,  6., 14., 15.]])