Python-Numpy学习笔记之array的创建方法和函数使用



提示:以下是本篇文章正文内容,下面案例可供参考

一.Numpy的认知

1.Numpy是什么

1.一个开源的Python科学计算库
2.使用Numpy可以方便的使用数组,矩阵进行计算
3.包含线性代数,傅里叶变换,随机数生成等大量函数

2.Numpy的优点

代码更简洁:Numpy直接以数组,矩阵为粒度(一个单元)计算并且支持大量的数学函数,而python需要用for循环从底层实现
性能更高效:Numpy的数组存储效率和输入输出计算性能,比python使用list或者嵌套list好很多
        注:(Numpy的数据存储和python原生的list是不一样的)
        注:Numpy的大部分代码都是c语言实现的,这是Numpy比纯python代码高效的原因

Numpy是Python各种数据科学类库的基础库
比如SciPy,SCikit-Learn,Tensorflow,PaddlePaddle
如果不会Numpy,那么这些库的深入理解都会遇到障碍

二、array的基本知识

1.array本身的属性

shape:返回一个元组,表示array的维度
ndim:一个数字,表示array的维度的数目
size:一个数字,表示array元素的个数
dtpye:array中元素的数据类型

2.创建array的方法

1.从python的列表list和嵌套列表创建array
2.使用预定函数arrange,ones/ones_like,zeros/zeros_like,full/full_like,eye等函数创建
3.生成随机数的np.random模块构建

3.array本身支持的大量操作和函数

1.直接逐元素的加减乘除等算术操作
2.更好用的面向多维的数组索引
3.求sum/mean的等聚合函数
4.线性代数函数,比如求解逆矩阵,求解方程组

三、array的基本操作

导入模块:

import numpy as np

1.使用python的list和嵌套list创建一维的array和二维的array

# 创建一个一维的数组,也就是python的单元素list
x=np.array([1,2,3,4,5,6,7,8])
# 创建一个二维的数组,也就是python的嵌套list
X=np.array([[1,2,3,4],[5,6,7,8]])
print("x=",x)
print("X=",X)

运行结果:
在这里插入图片描述

2.数组array的属性

print(x.shape)#返回一个元组,表示维度和元素个数
print(X.shape)
print(x.ndim)#返回一个值,表示维度
print(X.ndim)
print(x.size)#返回一个值,表示数组中所有元素的个数
print(X.size)
print(x.dtype)#返回一个值,表示数组内元素的数据类型
print(X.dtype)

运行结果:
在这里插入图片描述

3.创建array的便捷函数

<1>.使用arange创建数字序列

arange([起始值(取得到)],[终止值(取不到)],[步长],dtype=None)

print(np.arange(10))#创建一个0-10的一维数组(取不到10)
print(np.arange(2,10,2))#创建一个2-10,步长为2的一维数组(取不到10)

运行结果:
在这里插入图片描述

<2>使用ones创建单位数组

np.ones(shape,dtype=None,order=‘C’)
shape:int or tuple of ints Shape of the new array . eg:(2,3) or 2
dtype:数据类型,默认的是自己从输入的数据自动获得
order:有"C"和"F"两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序

print(np.ones(10))#创建一个一行十列的单位数组
print(np.ones((2,3)))#创建一个二行三列的单位数组

运行结果:
在这里插入图片描述

<3>使用ones_like创建与某个数组形状相同的单位数组

ones_like(a(数组),dtype=float,order=‘C’)

print(np.ones_like(x))#创建一个和x相同形状的单位数组
print(np.ones_like(X))#创建一个和X相同形状的单位数组
print(np.ones_like([2,3]))#创建一个和[2,3]数组形状相同的单位数组
print(np.ones_like([[1,2,3],[4,5,6]]))#创建一个和[[1,2,3],[4,5,6]]数组形状相同的单位数组

运行结果:
在这里插入图片描述

<4>使用zeros创建全是0的数组

np.zeros(shape,dtype=None,order=‘C’)

print(np.zeros(3))#创建一个一行三列的零数组
print(np.zeros((2,4)))#创建一个二行四列的零数组

运行结果:
在这里插入图片描述

<5>使用zeros_like创建与某个数组形状相同的零数组

np.zeros_like(a(数组),dtype=None,order=‘C’)

print(np.zeros_like(x))#创建一个和x数组形状相同的零数组
print(np.zeros_like(X))#创建一个和X数组形状相同的零数组
print(np.zeros_like([2,3]))#创建一个和[2,3]数组形状相同的零数组
print(np.zeros_like([[1,2,3],[4,5,6]]))#创建一个和[[1,2,3],[4,5,6]]数组形状相同的零数组

运行结果:
在这里插入图片描述

<6>使用empty创建全是0的数组

np.empty(shape,dtype=Nome,order=‘C’)
注意:数据是未初始化的,里面的值可能是随机值,不要用

print(np.empty(5))
print(np.empty((2,3)))

运行结果:
在这里插入图片描述

<7>使用empty_like创建形状相同的零数组

np.empty_like(prototype,dtype=None)(也有可能是未初始化数据,为随机值)

print(np.empty_like(x))
print(np.empty_like(X))
print(np.empty_like([2,3]))
print(np.empty_like([[1,2,3],[4,5,6]]))

运行结果:
在这里插入图片描述

<8>使用full创建指定值的数组

np.full(shape,fill_value,dtype=None,order=‘C’)

print(np.full(4,9))#创建一个一行四列,元素为9的数组
print(np.full((2,3),9))#创建一个二行三列,元素为9的数组

运行结果:
在这里插入图片描述

<9>使用full_like创建形状相同的数组

np.full_like(a(数组),fill_value,dtype=None)

print(np.full_like(x,9))#创建一个与x形状相同,元素为9的数组
print(np.full_like(X,9))#创建一个与X形状相同,元素为9的元素
print(np.full_like([2,3,4],9))#创建一个与[2,3,4]形状相同,元素为9的数组
print(np.full_like([[1,2,3],[4,5,6]],9))#创建一个与[[1,2,3],[4,5,6]]形状相同,元素为9的数组

运行结果:
在这里插入图片描述

<10>使用random模块生成随机数的数组

np.random.randn(d0,d1,…,dn)

print(np.random.randn())#生成一个随机数
print(np.random.randn(3))#随机生成一个一行三列的数组
print(np.random.randn(2,3))#随机生成一个二行三列的数组
print(np.random.randn(2,3,4))#随机生成一个三维的数组,有两块三行四列的数组组成

运行结果:
在这里插入图片描述

4.array本身支持的大量操作和函数

A=np.arange(10).reshape(2,5)#创建一个0-10的二行五列的数组
print(A)
print(A.shape)#数组的形状
print(A+1)#对A数组每个元素加一
print(A*2)#对A数组每个元素都乘2
print(np.sin(A))#对A数组每个元素求sin值,还可求其他三角函数值
print(np.exp(A))#对A数组每个元素求ln值
print(np.exp2(A))#对A数组每个元素求log2值

运行结果:
在这里插入图片描述

B=np.random.randn(2,5)#随机生成一个二行五列的数组
print(A+B)#将数组A和数组B对应元素相加
print(A-B)#将数组A和数组B对应元素相减

运行结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值