Python 数据处理 - Numpy 01 - 创建数组(矩阵)对象

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):通过开始值、终值和元素个数创建一个一维数组【每两个元素之间的比例相等(等比数列)】

用法同上

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值