1 Numpy基础

1.1 生成Numpy数组

Numpy封装了一个新的数据类型ndarray(N-dimensional Array),它是
一个多维数组对象。该对象封装了许多常用的数学运算函数,方便我们做数
据处理、数据分析等。那么如何生成ndarray呢?这里介绍生成ndarray的几
种方式,如从已有数据中创建,利用random创建,创建特定形状的多维数
组,利用arange、linspace函数生成等

1.1.1 从已有数据中创建数组

直接对Python的基础数据类型(如列表、元组等)进行转换来生成
ndarray:
1)将列表转换成ndarray:
import numpy as np
lst1 = [3.14, 2.17, 0, 1, 2]
nd1 =np.array(lst1)
print(nd1)
print(type(nd1))
2)嵌套列表可以转换成多维ndarray:
import numpy as np
lst2 = [[3.14, 2.17, 0, 1, 2], [1, 2, 3, 4, 5]]
nd2 =np.array(lst2)
print(nd2)
print(type(nd2))

1.1.2 利用random模块生成数组

在深度学习中,我们经常需要对一些参数进行初始化,因此为了更有效
地训练模型,提高模型的性能,有些初始化还需要满足一定的条件,如满足
正态分布或均匀分布等。这里介绍了几种常用的方法,如表1-1所示列举了
np.random模块常用的函数。

在这里插入图片描述
下面来看一些函数的具体使用:

import numpy as np
nd3 =np.random.random([3, 3])
print(nd3)
print(“nd3的形状为:”,nd3.shape)

为了每次生成同一份数据,可以指定一个随机种子,使用shuffle函数打
乱生成的随机数

import numpy as np
np.random.seed(123)
nd4 = np.random.randn(2,3)
print(nd4)
np.random.shuffle(nd4)
print(“随机打乱后数据:”)
print(nd4)
print(type(nd4))

1.1.3 创建特定形状的多维数组

参数初始化时,有时需要生成一些特殊矩阵,如全是0或1的数组或矩
阵,这时我们可以利用np.zeros、np.ones、np.diag来实现,如表

在这里插入图片描述
下面通过几个示例说明:

import numpy as np
#生成全是 0 的 3x3 矩阵
nd5 =np.zeros([3, 3])
#生成与nd5形状一样的全0矩阵
#np.zeros_like(nd5)
#生成全是 1 的 3x3 矩阵
nd6 = np.ones([3, 3])
#生成 3 阶的单位矩阵
nd7 = np.eye(3)
#生成 3 阶对角矩阵
nd8 = np.diag([1, 2, 3])

有时还可能需要把生成的数据暂时保存起来,以备后续使用:

nd9 =np.random.random([5, 5])
import numpy as np
np.savetxt(X=nd9, fname=’./test1.txt’)
nd10 = np.loadtxt(’./test1.txt’)
print(nd10)

1.1.4利用arange、linspace函数生成数组

arange是numpy模块中的函数,其格式为:

arange([start,] stop[,step,], dtype=None)

其中start与stop用来指定范围,step用来设定步长。在生成一个ndarray时,start默认为0,步长step可为小数。Python有个内置函数range,其功能与此类似。

import numpy as np
print(np.arange(10))
#[0 1 2 3 4 5 6 7 8 9]
print(np.arange(0, 10))
#[0 1 2 3 4 5 6 7 8 9]
print(np.arange(1, 4, 0.5))
#[1. 1.5 2. 2.5 3. 3.5]
print(np.arange(9, -1, -1))
#[9 8 7 6 5 4 3 2 1 0]

linspace

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值