numpy使用总结

前言

想了解 Numpy 的人基本上都是要和数据打交道的,Numpy对数据操作的方法多,底层也是使用 C 实现的,也就是说Numpy处理数据的速度是比较快的,这也体现了 Python 胶水语言的特性。Numpy 也被称为机器学习三剑客之一,另外的就是 Pandas 和 Matplotlib 了,虽然当前有诸如 scikit-learn 机器学习包以及 Pytorch、TensorFlow 深度学习框架,这些包和框架都少不了对数据的操作,当然也少不了对数据进行预处理,这些包和框架也支持与 Numpy 中的数据格式(ndarray)进行交互,所以我认为学好 Numpy 的操作也有利于更深入地了解一些高级的包和框架的使用。

对于 Numpy 来说,官方文档内容相当多,并且是英文的,难道我们需要全部学习一遍吗?我想,如果经常在数据处理领域中摸爬滚打的话,是需要的,但是我也相信二八定理,我们经常使用的也就是 Numpy 中的 20%左右,至于剩下的内容,需要我们在业余时间补回来,在需要的时候能够快速想起来,不需要做的特别熟练,如果特别熟练就更好了。下面的内容是自己总结的,方便自己看,也希望方便大家看。

程序运行环境:window10 Python3.7 (Anaconda) Numpy 1.18.1

文档参考:官方文档[1]中文文档[2]

1 安装与导入

如果安装了 Anaconda,就不需要再安装Numpy了,在安装 Anaconda 的时候就安装了 Numpy 及其相关的包。当然你可以使用如下命令安装:

conda install numpy

或者:

pip install numpy

在 Python 编程社区中,大家会对经常使用的包设置一个都比较认可的别名,Numpy 的别名是 np,使用别名编程也更加简洁,实际编程导入如下:

import numpy as np

当然,你也可以自定义别名,但是为了使得代码更具可读性可交流性,最好还是使用大家比较认可的别名。

先了解一下 Numpy 中的数据类型:

array = np.array([1, 2, 3, 4])   # 从一个list中创建Numpy类型的数据
print(type(array))   # <class 'numpy.ndarray'>

即使 Numpy 中只有一个元素,其也是 ndarray 的数据类型。其实也可理解普通的 number(int, float)类型可看为是标量,而 ndarray 数据类型是数组、向量或矩阵。

2 创建 ndarray 类型数据及相关信息

通常,可以从 list 类型的数据进行创建,也可以从 pandas 中 dataframe 类型中获取,生成一个 array,注:一个 ndarray数据类型都是相同的(底层 c 语言处理,速度快),否则会按照 int->float(np.float)->str(object)进行类型转换。

array1 = np.array([[1,2,3],
                 [4,5,6],
                 [7,8,9]])  # 使用一个二维的list生成一个二维的ndarray
array2 = np.array([10, 11, 12, 13])   # 创建一个1维的ndarray

2.1 常用属性

查看数组的形状,在矩阵计算时,数据的维度要满足矩阵计算要求。

print(array1.shape, array2.shape)  # 返回元组类型 (3, 3) (4,)

查看数组的维度,

print(array1.ndim, array2.ndim)  # 2 1

查看元素的数据类型,需要满足一定的精度

print(array1.dtype)   # 默认为int32类型(根据机器决定)

查看数组中共有多少个数据,

print(array1.size)  # 9

补充: 在创建 ndarray 的时候,可以选择使用什么样的数据类型,如使用 float 类型:

array3 = np.array([1, 3, 5], dtype=np.float)
print(array3.dtype)  # float64

2.2 创建特殊类型的 ndarray

在进行矩阵计算时,可以快速创建如全 0 矩阵,单位矩阵,全 1 矩阵,并指定对应的维度等。

在一定范围内创建等间隔的 ndarray,该方法类型与 Python 中的 range 函数相似,但更强大。

array = np.arange(10, 15, 0.5, dtype=np.float)
print(array) # [10.  10.5 11.  11.5 12.  12.5 13.  13.5 14.  14.5]

拓展: 创建特殊函数以 10 为底的 log 对数

array = np.logspace(0, 1, 5)  # [0, 1],10^0, 10^0
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值