NumPy 快速入门:数组对象,数组属性,花式索引等基础介绍

NumPy是Python数据分析的重要库,提供ndarray对象、数组创建、数据类型、结构、计算、索引等功能。介绍了如何使用array、zeros、empty、arange等创建数组,数组的切片、赋值,以及布尔索引和花式索引。同时讲解了数组的组合、切割和属性查询,例如ndim、size和nbytes。
摘要由CSDN通过智能技术生成

1、NumPy 简介:

NumPy (Numerical Python的简称)是高性能科学计算和数据分析的基础包,是想利用 Python 进行数据分析人士必须了解的模块之一。

由于各种原因 NumPy 模块并不是 Python 的标准模块,故需安装使用:

pip install numpy

导入 NumPy 模块时通常约定写成:

import numpy as np

numpy 主要功能:

  1. 提供 ndarray 对象:具有矢量算数运算和复杂广播能力的多维数组;
  2. 提供了许多可对数组对象直接运算的标准数学函数,而无需编写循环;
  3. 提供了用于读写磁盘数据的工具及用于操作内存映射文件的工具;
  4. 提供了线性代数、随机生成及傅里叶变换功能;
  5. 用于集成由 C 、C++、Fortran 等语言编写的代码的工具。
2、ndarray 数组对象:

ndarray 是指 NumPy 中的N维数组对象,是一个快速而灵活地大数据集容器。

3、创建数组:

array 函数: 可接收一切序列对象(包括其他数组对象),然后产生一个新的 NumPy 数组。

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数 含义
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
copy 对象是否需要复制,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok 默认返回一个与基类类型一致的数组
ndmin 指定生成数组的最小维度

简单示例:

import numpy as np  # 导入模块,后面示例不再写

data = [6,7.5,8,0,1]
arr1 = np.array(data)
print(arr1)  # [6.  7.5  8.  0.  1. ]

接收一个嵌套序列:

data2 = [[1,2,3,4],[5,6,7,8]]
arr2 = np.array(data2)
print(arr2)
'''
[[1 2 3 4]
 [5 6 7 8]]
'''

解析: 除非设置数据类型(数据类型稍后会详细介绍),或者 array 函数会根据传入的序列选择适合的数据类型。

如,在上面 arr1 中,传入的列表中有 7.5 浮点数,所以创建的 arr1 数组类型为浮点型。

查看创建的数组数据类型:

print(arr1.dtype)  # float64
print(arr2.dtype)  # int32 或 int64 ,和安装的 Python 版本有关

其他创建数组的方法:

在这里插入图片描述
zeros 函数: 创建全 0 数组

# 创建一维数组
print(np.zeros(10))  # [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
# 创建多维数组
print(np.zeros((3,6)))  
'''
[[0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0.]]
'''

empty 函数:

print(np.empty((2,3,2)))
'''
[[[8.74e-322 0.00e+000]
  [0.00e+000 0.00e+000]
  [0.00e+000 0.00e+000]]

 [[0.00e+000 0.00e+000]
  [0.00e+000 0.00e+000]
  [0.00e+000 0.00e+000]]]
'''

arange 函数: 是 Python 内置函数 range 的数组版

# arange 函数
print(np.arange(15))  
# [ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

eye 函数: 创建一个单位矩阵

print(np.eye(3,3))
'''
[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]
'''
4、数组的数据类型:

NumPy 的一个数组对象里所有的数据都是同质的,即数组内 数据类型一致

在这里插入图片描述
在这里插入图片描述
设置、查看数组对象数据类型:

arr3 = np.array([1,2,3],dtype=np.float)
arr4 = np.array([1,2,3],dtype=np.int)
print(arr3.dtype,arr4.dtype) 
# 打印结果
# float64 int32

转换数组数据类型:

arr5 = np.array([1,2,3,4,5])
print(arr5.dtype)  # int32
float_arr5 = arr5.astype(np.float)
print(float_arr5.dtype)  # float64

注:astype 会创建一个新的数组对象

自定义数据类型:

NumPy 也提供了自定义数组对象的数据类型方法。自定义数据类型是一种异构数据类型,可以当做记录一行数据的结构。
如:创建一个存储商店库存信息的数据类型,该库存信息有:商品名称、库存数量、商品价格。

# 创建数据类型
my_type = np.dtype([('name'
  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值