学习笔记,仅供参考,有错必究
数组操作
# 垂直方向和并数组
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.]])