【Python】NumPy库基本使用

本文详细介绍了Python中的NumPy库,包括ndarray的基础操作,如array()函数、数据类型和dtype选项,以及创建数组的方法。讨论了算术运算、矩阵积、自增自减运算符、通用函数和聚合函数。还涵盖了索引、切片、迭代,条件和布尔数组,形状变换,数组连接和切分等高级操作。是Python数据分析初学者的实用指南。
摘要由CSDN通过智能技术生成

本文整理自《Python数据分析实战》

1. ndarray:NumPy库的心脏

1.1 array()函数

最常用于创建数组的方法是使用array()函数,参数为单层或嵌套列表:

# 单层列表
>>> np.array([1,2,3])
array([1, 2, 3])

# 嵌套列表
>>> np.array([[1,2,3],[4,5,6]])
array([[1, 2, 3],
       [4, 5, 6]])

参数还可以是嵌套元组或元组列表:

# 嵌套元组
>>> np.array(((1,2,3),(4,5,6)))
array([[1, 2, 3],
       [4, 5, 6]])

# 元组列表
>>> np.array([(1,2,3),(4,5,6)])
array([[1, 2, 3],
       [4, 5, 6]])

此外,参数可以是元组或列表组成的列表:

>>> np.array([(1,2,3),[4,5,6],(7,8,9)])
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])

1.2 数据类型

数据类型 描述
bool_ 以字节存储的布尔值(True 或 False)
int_ 默认的整数类型(和 C 的 long 一样,是 int64 或者 int32)
intc 和 C 的 int 相同(一般为 int64 或 int32)
intp 用于下标的整数(和 C 的 ssize_t 相同,一般为int64 或者 int32)
int8 字节(-128 到 127)
int16 整数(-32768 到 32767)
int32 整数(-2147483648 到 2147483647)
int64 整数(-9223372036854775808 到 9223372036854775807)
uint8 无符号整数(0 到 255)
uint16 无符号整数(0 到 65535)
uint32 无符号整数(0 到 4294967295)
uint64 无符号整数(0 到 18446744073709551615)
float_ float64 的简写
float16 半精度浮点:1位符号,5位指数,10位尾数
float32 单精度浮点:1位符号,8位指数,23位尾数
float64 双精度浮点:1位符号,11位指数,52位尾数
complex_ complex128 的简写
complex64 由两个32位浮点(实部和虚部)组成的复数
complex128 由两个64位浮点(实部和虚部)组成的复数

1.3 dtype选项

array()函数默认根据列表或元素序列中各元素的数据类型,为ndarray()对象指定最合适的数据类型。可以用dtype选项作为函数array()的参数,明确指定dtype的类型。

比如要定义一个复数数组:

>>> np.array([[1,2,3],[4,5,6]],dtype=complex)
array([[ 1.+0.j,  2.+0.j,  3.+0.j],
       [ 4.+0.j,  5.+0.j,  6.+0.j]])

1.4 自带的数组创建方法

NumPy库有几个函数能够生成包含初始值的N维数组:

  • zeros()
  • ones()
  • arange()
  • reshape()
  • linspace()
  • random()

zeros()函数能够生成由shape参数指定维度信息、元素均为零的数组:

>>> np.zeros((3,3))
array([[ 0.,  0.,  0.],
       [ 0.,  0.,  0.],
       [ 0.,  0.,  0.]])

ones()函数与zeros()函数相似,生成元素均为1的数组:

>>> np.ones((3,3))
array([[ 1.,  1.,  1.],
       [ 1.,  1.,  1.],
       [ 1.,  1.,  1.]])

arange()函数根据参数生成包含一个数值序列的数组:

# 生成从0到9的数组
>>> np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

# 生成从4到9的数组
>>> np.arange(4,10)
array([4, 5, 6, 7, 8, 9])

# 按步长为2生成从0到9的数组
>>> np.arange(0,10,2)
array([0, 2, 4, 6, 8])

# 按步长为0.6生成从4到9的数组
>>> np.arange(4,10,0.6)
array([ 4. ,  4.6,  5.2,  5.8,  6.4,  7. ,  7.6,  8.2,  8.8,  9.4])

reshape()函数通常结合arange()函数使用,改变数组的型:

# 将一维数组a变为3*4的数组
>>> a=np.arange(12).reshape((3,4))
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])

# 将a变回为一维数组
>>> a.reshape((12,))
array([ 0,  1,  
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值