01_创建矩阵三种方式

在这里插入图片描述


博文配套视频课程:24小时实现从零到AI人工智能


numpy与list比较

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多

  1. List是列表,可以通过索引查找数值,但是不能对整个列表进行数值运算
  2. np.array可以通过reshape修改矩阵维度,而List没有此属性
  3. 物理意义:np.array每一行以后代表的是样本,每一列代表的是特征,List列表一般是用来存储相同数据类型的数据结构

创建矩阵的第1种方式

此方式可以最简洁的创建一个np.array一维或者多维矩阵,后续DataFrame格式的data属性也支持通过此方式生成数据,一般创建成功后直接调用reshape函数可以设置矩阵的形状

t1 = np.arange(12)
# 矩阵支持四则运算 (矩阵中每个元素分别进行运算)
t1 = t1 + 1
print(t1, type(t1),t1.shape)
# [ 1  2  3  4  5  6  7  8  9 10 11 12] <class 'numpy.ndarray'> (12,)

l = [1, 2, 3, 4, 5]
# 掌握 nd.array与list区别
# l = l + 1
print(l, type(l))
# [1, 2, 3, 4, 5] <class 'list'>

# 可以通过reshape修改矩阵的形状
t1 = t1.reshape(3,4)
print(t1, type(t1),t1.shape)
# [[ 1  2  3  4]
#  [ 5  6  7  8]
#  [ 9 10 11 12]] <class 'numpy.ndarray'> (3, 4)

创建矩阵的第2种方式

np.array表面上看起来生成矩阵略复杂,但是有两个优点,第一可以生成不同的数据类型的矩阵。第二后续加载图片生成的二进制或者图片可以直接通过此方法转化成np.array矩阵结构

# 可以把list转化为ndarray
data = [[1,2,3.14,4],
        [True,6,7,None]]
print(data,type(data))
# [[1, 2, 3.14, 4], [True, 6, 7, None]] <class 'list'>

# 创建ndarray时支持各种类型
t2 = np.array(data)
print(t2, type(t2),t2.shape)
# [[1 2 3.14 4]
# [True 6 7 None]] <class 'numpy.ndarray'> (2, 4)

创建随机数矩阵

罗列了3种生成随机矩阵的最常见方式,特别要把握第3种normal 正态分布的随机数,因为现实生活中很多的行业和数据呈现的是正态分布的结构,后续如果我们采用normal方式来模拟数据会大大提高机器学习和深度学习的效率

t3 = np.random.random(size=[3,4])
print(t3, type(t3),t3.shape)
'''
[[0.08251817 0.94676616 0.03582348 0.962667  ]
 [0.86131628 0.79905465 0.03689777 0.93871715]
 [0.60210801 0.82896027 0.51373144 0.80101307]] <class 'numpy.ndarray'> (3, 4)
'''
t3 = np.random.randint(1,100,size=(3,4))
print(t3, type(t3),t3.shape)
'''
[[90 47 12 45]
 [ 8 68 95 45]
 [60 19 68 59]] <class 'numpy.ndarray'> (3, 4)
'''
t3 = np.random.normal(loc=10,size=[3,4])
print(t3, type(t3),t3.shape)
'''
[[10.88115518  9.11658607  8.9742216   9.76911218]
 [ 9.49499227  9.72997241 10.7788368   9.74349227]
 [ 9.7147179  10.78253949  9.95693574  9.95096342]] <class 'numpy.ndarray'> (3, 4)
'''

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值