目录
2、random.choice函数可以从指定的样本中进行随机抽取数据
2、range() 函数可创建一个整数列表,一般用在 for 循环中:
2、进行运算的两个矩阵相应维度的大小要么相同,要么其中有一个为 1
一、生成Numpy数组
工具
- np.+Tab:查看可使用的函数
- np.abs?:查看abs函数的详细信息
1、从已有数据中创建数组
直接对 Python 的基础数据类型(如列表list、元组tuple等) 进行转换来生成 ndarray:
(1)将列表或嵌套列表转换成 ndarray:np.array(list)
(2)将元组或嵌套元组转换成多维 ndarray:np.array(tuple)
2、利用 random 模块生成数组
表1 np.random模块常用函数
示例:
为了每次生成同一份数据,可以指定一个随机种子,使用shuffle函数打乱生成的随机数:
import numpy as np
np.random.seed(123) #123是一个标识,数字一样时,生成的随机数始终不变
nd4 = np.random.randn(2,3) #随机生成2行3列标准正态的随机数
print(nd4)
np.random.shuffle(nd4) #打乱顺序
print("随机打乱后数据:")
print(nd4)
print(type(nd4)) #输出nd4的形状
输出结果:
[[-1.0856306 0.99734545 0.2829785 ]
[-1.50629471 -0.57860025 1.65143654]]
随机打乱后数据:
[[-1.50629471 -0.57860025 1.65143654]
[-1.0856306 0.99734545 0.2829785 ]]
3、创建特定形状的多维数组
表2 NumPy 数组创建函数
补充:
np.diag([1,2.3]) 三阶对角矩阵,以1,2,3作为对角线上的元素,其余均为0
保存数据&下载数据:
import numpy as np
nd9 =np.random.random([5, 5])
np.savetxt(X=nd9, fname='./test1.txt')
nd10 = np.loadtxt('./test1.txt')
print(nd10)
4、利用 arange、linspace 函数生成数组
(1)arange的用法
arange([start,] stop[,step,], dtype=None) #注意:[start,stop)左闭右开
其中start 与 stop 指定范围,start 默认为 0,步长 step 可为小数,默认为1
(2)linspace的用法
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None
linspace可以根据输入的指定数据范围以及等份数量,自动生成一个线性等分向量,其中endpoint (包含终点)默认为 True,等分数量num默认为 50。如果将retstep设置为 True,则会返回一个带步长的 ndarray。
import numpy as np
print(np.linspace(0, 1, 10))
#[0. 0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
# 0.66666667 0.77777778 0.88888889 1. ]
因为 linspace 必定会包含数据起点和终点,那么步长则为(1-0) / 9 = 0.11111111
二、获取元素
1、指定索引标签
如图所示:左边为表达式,右边为表达式获取的元素。注意不同的边界,表示不同的表达式。
注意: [ 行 , 列 ] ,“ :”左