NumPy入门1:基本操作与通用函数

前言

  • 本文介绍NumPy的基本操作和通用函数。NumPy作为数据科学领域常用的Python数学处理工具,掌握NumPy十分重要

  • 将在《NumPy入门2》中介绍广播、索引、结构化数组等后续内容

  • 本文面向新手

  • NumPy提供一种固定类型数组和相应的操作及方法,单个数组存储数据的多样性较Python原始列表而言较弱,但NumPy内部大量的数学处理工具为我们提供了极大的便利

  • NumPy的array类型是ndarray,是固定类型数组,即内部所有元素都是相同类型的。

  • Python自带的list,同一个list内的不同元素类型可以不同,则list就需要为每个元素存储各自一个和元素相关的信息块。若list中所有元素都是相同类型,则就会存储大量多余重复的信息块

  • Python自带array要求内部元素类型相同,但其提供的操作和方法相比于NumPy就逊色许多。

  • 注意,ndarray本身是数组类型,不是向量类型

  • 总而言之,在对大量数据集的数据处理及数学运算上,NumPy的效率要远远高于原生Python

  • 一般而言,才处理小数据集时,NumPy的效率和Python原生的效率相差无几。下文主要都是用小数据集来介绍NumPy仅仅是为了方便记录,实际工作中在处理小数据集上没必要用NumPy代替Python原生

  • 个人推荐直接安装Anaconda。Anaconda包括Python、R、包管理工具conda、数据处理工具NumPy、pandas等、IDE如Spyder等、增强版Python——交互式console IPython、Jupyter notebook and Jupyter lab等,具备了各种强大的数据处理工具。也可以安装纯Python或miniconda再自行手动安装NumPy。

  • 本文只给出各种操作、方法的案例和使用方法,不对任何方法以及其参数等进行深入、详细的介绍,文档里都有,请自行查阅文档

  • 本文原为Jupyter lab编辑完成,请自行区分输入和输出

NumPy pandas的本质是Module,即一个.py文件

  • 首先
import numpy as np

创建NumPy的ndarray

注意前闭后开区间

print(np.array([1, 2, 3]), end = '\n\n')
print(np.array(range(10)), end = '\n\n')
print(np.array([range(i, i+3) for i in [1, 4, 7]]), end = '\n\n')
[1 2 3]

[0 1 2 3 4 5 6 7 8 9]

[[1 2 3]
 [4 5 6]
 [7 8 9]]
print(
    np.empty(10),# 空数组的内部值理论上是随机的,也有的全是0
    np.zeros(10, dtype = int),
    np.eye(3),
    np.ones((3, 3), dtype = float),
    np.full((2,2,3), 2.17),
    np.arange(0, 20, 4),#与range()类似
    np.linspace(0, 20, 4),
    sep = '\n\n'
)
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

[0 0 0 0 0 0 0 0 0 0]

[[1. 0. 0.]
 [0. 1. 0.]
 [0. 0. 1.]]

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]

[[[2.17 2.17 2.17]
  [2.17 2.17 2.17]]

 [[2.17 2.17 2.17]
  [2.17 2.17 2.17]]]

[ 0  4  8 12 16]

[ 0.          6.66666667 13.33333333 20.        ]
print(
    np.random.random((4, 4)),#在0~1均匀分布的随机数组成的数组
    np.random.normal(0, 1, (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值