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)
相关推荐
La Pulga4 小时前
【FreeRTOS源码学习笔记】空闲任务与阻塞延时
笔记·mcu·学习·嵌入式·freertos·实时操作系统
蒸蒸yyyyzwd4 小时前
秋招学习笔记 day106
笔记·学习
小李不想当小白5 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
lisw058 小时前
作为人类代理的大语言模型及其角色分类!
人工智能·学习·语言模型
Z21-X8 小时前
云原生运维实战笔记:企业网站综合上云部署与云运维服务全景解析
运维·笔记·学习·云原生
坤坤子吖8 小时前
Linux网络编程:UDP进阶,从字典服务器到简单聊天室
linux·服务器·网络·c++·笔记·学习
Rabitebla9 小时前
【Linux学习笔记】进程篇(九):进程的创建与退出——fork、写时拷贝与退出码
linux·c++·笔记·学习
楚山之石9 小时前
【MRM】CAPLEX 对比剂灌注 MRI 开源术语库:ISMRM OSIPI 共识报告
图像处理·人工智能·学习·mri
前进的李工20 小时前
Agent 学习笔记 05:系统提示词应该怎么写
笔记·学习·prompt·agent·个人开发·few-shot·ai应用开发
正在走向自律1 天前
【3/5】人工智能训练师 三级/高级工 考证学习方向:从“独立执行”到“设计、归因与全链条负责”
人工智能·学习·人工智能训练师·注方案设计·数据质控负责人·模型评测与调优辅助·ai训练项目交付