Numpy 模块调用方式:import numpy as np
1. 创建一个 Normal 的数组
np.array():将list 或 tuple 转换为数组对象
import numpy as np
' 1.1 创建一维数组 '
' List 版本 '
numList = list(range(3)) # [0, 1, 2]
numArr1 = np.array(numList)
print(numArr1) # 打印结果为 [0 1 2],是一维矩阵
' tuple同理 '
numTuple = tuple(range(3)) # (0, 1, 2)
numArr2 = np.array(numTuple)
print(numArr2) # 打印结果为 [0 1 2],是一维矩阵
' 1.2 创建二维数组 '
num2dList1 = [numList, numList] # [[0, 1, 2], [0, 1, 2]]
num2dList2 = [numList] * 2 # same as num2dList1
num2dArr = np.array(num2dList1)
print(num2dArr)
# [[0 1 2]
# [0 1 2]]
' 1.2.1 查看这个二维数组的属性 '
' Dimension '
print(num2dArr.ndim) # 2
' size 元素个数 '
print(num2dArr.size) # 6
' Shape '
print(num2dArr.shape) # (2, 3) -- 2*3 矩阵
' Data type '
print(num2dArr.dtype) # int32
2. 创建未初始化的数组
np.empty(shape):分配指定大小的数组,未初始化 ,随机填充值
import numpy as np
uniniArr = np.empty((2, 2))
print(uniniArr)
# [[5.e-324 4.e-323]
# [4.e-323 4.e-323]]
3. 创建全为0和全为1的数组
3.1 创建自定义shape和dtype的零矩阵和全1矩阵
np.zeros(shape, dtype = '')
np.ones(shape, dtype= '')
import numpy as np
zeroArr = np.zeros((2, 3), dtype= 'int32')
oneArr = np.ones((2, 3), dtype= 'int32')
print(zeroArr)
# [[0 0 0]
# [0 0 0]]
print(oneArr)
# [[1 1 1]
# [1 1 1]]
3.2 根据已有shape和dtype的数组对象,来创建零矩阵和全1矩阵
np.zeros_like(arr)
np.ones_like(arr)
import numpy as np
existList = [1, 2, 3]
exist2dList = [existList, existList]
existArr = np.array(exist2dList)
print(existArr.shape)
print(existArr.dtype)
zeroNewArr = np.zeros_like(existArr)
oneNewArr = np.ones_like(existArr)
print(zeroNewArr)
print(oneNewArr)
4. 创建对角矩阵
4.1 np.eye(rows, columns = rows, k = 0):如果k > 0 上对角;k < 0 下对角
import numpy as np
' 4.1.1 k = 0 '
eyeArrK0 = np.eye(3)
print(eyeArrK0)
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
' 4.1.2 k = -1 '
eyeArrKn = np.eye(4, 3, -1)
print(eyeArrKn)
# [[0. 0. 0.]
# [1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
' 4.1.3 k = 2 '
eyeArrKp = np.eye(4, 4, 2)
print(eyeArrKp)
# [[0. 0. 1. 0.]
# [0. 0. 0. 1.]
# [0. 0. 0. 0.]
# [0. 0. 0. 0.]]
4.2. np.diag((entry1, entry2, ...., entry n)):生成方阵,entry1 - entryn 为对角线元素
import numpy as np
diagArr = np.diag((1, 2, 3, 4))
print(diagArr)
# [[1 0 0 0]
# [0 2 0 0]
# [0 0 3 0]
# [0 0 0 4]]
5. np.arange(start, end, step = 1)
:通过开始值、终值和步长创建一维数组
import numpy as np
arangeArr1 = np.arange(1, 3)
print(arangeArr1) # [1 2]
arangeArr2 = np.arange(1, 10, 2)
print(arangeArr2) # [1 3 5 7 9]
6. np.linspace(start, realEnd, numOfElements)
:通过开始值、终值和元素个数创建一维数组【每两个元素之间的距离相等(等差数列)】
import numpy as np
linspaceArr1 = np.linspace(1, 10, 2)
print(linspaceArr1) # [1. 10.]
linspaceArr2 = np.linspace(1, 10, 3)
print(linspaceArr2) # [1. 5.5 10.]
linspaceArr3 = np.linspace(1, 10, 4)
print(linspaceArr3) # [1. 4. 7. 10.]
7. np.logspace(start, realEnd, numOfElements)
:通过开始值、终值和元素个数创建一个一维数组【每两个元素之间的比例相等(等比数列)】
用法同上