Numpy学习——创建ndarray的方法

1.创建ndarray的方法

|------------------|-------------------------------------------------------------------|
| 方法 | 描述 |
| 基础构造 | np.array |
| 基础构造 | np.copy:深拷贝,复制另一个数组,成为一个新数组,修改后不改变copy的 |
| 预定义形状填充 | np.zeros(shape):创建shape形状的全为0的数组 |
| 预定义形状填充 | np.ones(shape):创建shape形状全为1的数组 |
| 预定义形状填充 | np.empty(shape):创建一个未初始化的数组 |
| 预定义形状填充 | np.full(shape,num):创建一个shape形状的元素全为num的数组 |
| 基于数值范围生成 | np.arange(start,end,step):范围[start,end),step为间隔的长短 |
| 基于数值范围生成 | np.linspace(start,end,num):范围[start,end],num表示将范围分成num-1段, 取分段点 |
| 基于数值范围生成 | np.logspace(start,end,num,base):取base^a,a为np.linspace生成的点 |
| 特殊矩阵生成 | np.eye(shape):生成主对角线为1,其余为0的矩阵 |
| 特殊矩阵生成 | np.diag(对边元素):生成主对角线有数,其余为0的矩阵 |
| 随机数组生成 np.random | np.random.rand(shape):生成0-1之间的数 |
| 随机数组生成 np.random | np.random.uniform(start,end,shape):生成start到end之间的随机浮点数 |
| 随机数组生成 np.random | np.random.randint(start,end,shape):生成start-end范围之间的随机整数 |
| 随机数组生成 np.random | np.random.rand(shape):生成正态分布的随机数,大概率在(-3,3)之间, 取到0附近的概率最大 |
| 随机数组生成 np.random | np.random.seed():随机种子 |

2.示例

1.基础构造

使用np.array先构造一个数组,再使用copy拷贝,这个是深拷贝,copy的数组进行修改后不影响原数组。

python 复制代码
import numpy as np
#####1.基础构造:#######
#array
list1=[1,2,3]
arr=np.array(list1,dtype=np.float64)
print(arr)
print(arr.ndim)
#copy,复制
arr_copy=np.copy(arr)#不是一个数组了
print(arr_copy)
arr_copy[0]=8
print(arr,arr_copy)

2.预定义形状填充

注:预定义填充还有xxx_like这一功能:xxx代表预定义填充函数功能,like表示copy其他数组的形状。

python 复制代码
import numpy as np
######################2.预定义形状填充###############
#zeros,全0数组,默认小数
arr0=np.zeros((2,3))
#创建1维的数组
arr0=np.zeros((3,))
print(arr0)
#ones,全1数组
arr1=np.ones((2,3))
print(arr1)
#empty,未初始化
arr_empty=np.empty((4,3))
print(arr_empty)
#full,填满某个数,输入形状和要填的数
arr_full=np.full((2,3),5)
print(arr_full)
#zeros_like,表示全为0,形状copy别人的,同理,有ones_like,empty_like,full_like
arr_like=np.zeros_like(arr_empty)
print(arr_like)

3.基于数值范围生成

arange其实和linspace功能差不多,arange是取一个数,再走step步,再取数;linspace是通过这个取的范围,先化成num-1段,取这num个端点;logspace是在linspace基础上取base(底数)的端点次方。

python 复制代码
import numpy as np
#####################3.基于数值范围生成#################
#arange(start,end,step),[start,end)
arr_arange=np.arange(2,11,2)
print(arr_arange)
#linspace(start,end,num),分成num个点,num-1段
arr_linspace=np.linspace(0,10,6)
print(arr_linspace)
#logspace(start,end,num,base),分成num个点,base是对数的底
arr_log=np.logspace(1,3,3,base=2)
#输出2,4,8(取3个点:1,2,3,然后求2的n次方)
print(arr_log)

4.特殊矩阵生成

eye是令主对角线元素为1,其余为0;diag就是填充主对角线上的数,其余都为0

python 复制代码
import numpy as np
######################4.特殊矩阵生成##################
#eye(m,n),主对角线是1,其余为0
arr_eye=np.eye(6,5)
print(arr_eye)
#diag,对角矩阵,括号里面填对边的数值
arr_diag=np.diag([1,2,3,4,5])
print(arr_diag)

5.随机数生成

你会发现,使用随机种子之后,随机的数组不会再改变

python 复制代码
import numpy as np
######################5.随机数值生成##################
#random.rand,生成0到1之间的随机浮点数
arr_01=np.random.rand(2,3)
print(arr_01)
#random.uniform(start,end,(m,n)),生成指定范围区间的随机浮点数
arr_uniform=np.random.uniform(3,6,(2,3))
print(arr_uniform)
#randint,生成指定范围的随机整数
arr_int=np.random.randint(3,10,(2,3))
print(arr_int)
#randn,正态分布,两边小,中间大,大部分是(-3,3)之间的数,取到0附近概率最大
arrn=np.random.randn(2,3)
print(arrn)
#seed:种子
np.random.seed(20)
arr_intseed=np.random.randint(1,10,(2,5))
print(arr_intseed)
相关推荐
2501_916766543 小时前
【Git学习】Git本地仓库基础命令
git·学习
墨^O^3 小时前
软件测试开发知识笔记
笔记·学习·测试工具·单元测试·测试用例·压力测试·ab测试
LGL6030A3 小时前
Java学习历程21——集成框架与常用库函数
学习
冬夜戏雪3 小时前
【java学习】【12.10】【10/60】
学习
代码游侠3 小时前
应用——文件I/O操作代码
linux·运维·c语言·笔记·学习·算法
石像鬼₧魂石3 小时前
适合渗透测试学习的网络靶场
网络·学习
sealaugh323 小时前
AI(学习笔记第十五课)从langchain的v0.3到v1.0
人工智能·笔记·学习
麦麦在写代码3 小时前
前端学习6(JS 1)
前端·javascript·学习
snowfoootball3 小时前
12.9八股面经案例学习
学习