Numpy库之数组创建

1. Numpy介绍

  • Numpy是一个开源的python科学计算基础库,包含了:
    1. 一个强大的N维数组对象:ndarray
    2. 广播功能函数
    3. 整合C/C++/Fortran代码的工具
    4. 线性代数、傅里叶变换、随机数生成等功能
  • Numpy是SciPy、Pandas等数据处理或科学计算库的基础
  • 引用:import numpy as np
  • 功能:主要是用来操作数组和矩阵
  • 数据类型:ndarray(N-dimensional array)

2. Numpy的数组对象:ndarray

python已经有列表类型,为什么还需要一个数组对象(类型)?
我们来看看下面的例子:
列表做乘法不会对列表内的元素做乘法,只能通过循环来实现作用于列表的内部元素
在这里插入图片描述

再来看看numpy的数组类型:可以直接作用于数组的内部元素

注意!数组对象数据类型需相同(有助于节省运算和存储空间)

在这里插入图片描述

2.1 ndarray介绍

  • ndrray是一个多维数组对象
  • 由实际的数据和描述这些数据的元数据(数据维度、数据类型)构成
  • 一般要求所有元素类型相同(同质)
  • 数组下标由0开始

2.2 ndarray对象的属性

在这里插入图片描述

举例1:

在这里插入图片描述

2.3 更改数组维度

在这里插入图片描述注:可以通过修改数组的shape属性,在保持数组元素个数不变的情况下,改变数组轴的属性

在这里插入图片描述

2.4 ndarray数组的元素

ndarray的元素类型(查看:.dtype)及其转换(.astype()、.tolist()),可参考链接:
https://baijiahao.baidu.com/s?id=1605931608452741801&wfr=spider&for=pc

ndarray为什么要支持那么多种数据类型?
对元素的精细定义,有助于numpy合理使用存储空间并优化性能

2.5 非同质的ndarray对象(尽量避免使用)

在这里插入图片描述在这里插入图片描述

2.6 ndarray数组的创建

  1. 从python中的列表、元组等类型创建ndarray数组

x = np.array(list/tuple)

#不指定时根据情况关联一个dtype类型
x = np.array((list/tuple, dtype = np.floats32)

在这里插入图片描述

  1. 使用numpy中函数创建ndarray数组
函数说明
np.empty(shape, (dtype))以随机的方式创建数组
np.zeros(shape)根据shape创建一个全0数组,shape为数组形式
np.zeros_like(a)创建和a数组相同格式的数组,且数组元素全为0
np.ones_like(a)创建和a数组相同格式的数组,且数组元素全为1
np.ones(shape)根据shape创建一个全1数组,shape为数组形式
np.eye(n)创建一个n*n的单位矩阵,对角线元素为1,其余元素全为0
np.full(shape,val)创建一个元素全为val的数组
np.full_like(a,val)根据a的形状生成一个数组,每个元素都为val
np.arange(n)类似range()函数,返回ndarray类型,元素从0到n-1,不包括终值
np.linspace()根据起止数据等间距的填充数据形成数组,包括终值
np.logspace()创建等比数列
np.asarray()把python中的list或元组转换成numpy的ndarray类型
np.random.rand()生成随机数组

在这里插入图片描述在这里插入图片描述

数组的索引、切片与修改元素

  1. 一维数组的索引、切片以及元素修改(与python列表类似)
    在这里插入图片描述
  • 注:与python列表不同的是,下标范围获取的数组是原数组的一个视图,所以通过下标修改数组也修改了原数组

在这里插入图片描述

  • 使用整数序列对数组元素进行修改时,原数组不变
    在这里插入图片描述

  • 使用布尔数组对元素进行修改时,原数组改变
    注:这种方式只能对应布尔数组,不能对应布尔列表
    在这里插入图片描述

  1. 多维数组的索引和切片
    在这里插入图片描述

Numpy之广播

在这里插入图片描述

如何用广播来创建一个数组呢?
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值