Python 数据分析与机器学习实战(工具库篇)

Python 数据分析与机器学习实战(Numpy库)

欢迎进入到数据的世界!

Python作为当前最火的数据分析工具,具有上手难度低,快捷方便等优点,适合非编程人员快速理解和学习,从未学习过coding的同学也可以通过简单的课程了解一下基本的逻辑和语言,最主要的是习惯计算机编程环境!!

Python科学计算库-Numpy

Numpy作为最常用的基础库之一,是一切数据分析的起点,要求对于线性代数具有一定的了解(基本上本科都会涉及,如果忘记了可以边学边查),需要掌握的有:数组结构、计算、排序、数组形状、随机生成、读写几个部分,我们先了解一下数组的结构

  • 结构

首先要搞清楚 list 和 array 的区别:

import numpy as np
list = [1,2,3,4,5]
print(type(list))
<class 'list'>
array = np.array([1,2,3,4,5])
print(type(array))
<class 'numpy.ndarray'>

我们可以看到在list和array在括号的使用上都是用了中括号[ ],但是如果要将list变成array需要添加np.array,使其变成ndarray的类型,这样我们就得到了一个简单的数组。ndarray是我们进行计算的基础,也是进行数据分析的第一步!

现在,我们有了数据分析的第一块砖,那么接下来需要搞清楚一个听起来高大上并且又远又近的概念,维度

维度在数学和物理领域拥有不同的理解,在数学领域上更多被成为维数,简单来说就是独立参数的数目,那么什么是参数(Parameter)呢?可以理解为自变量和因变量之间的关系,如果还是不太理解,没关系,让我们来看看python是怎么理解的。

print(array)
[1 2 3 4 5]
array.shape
(5,)

我们得到了一个简单的数组array,通过 .shape得到了一个结果 (5, ),现在忘掉之前的文字定义,通过运算结果来读取一下关于目标数组的信息。

首先要搞清楚这是个几维数组,一目了然,有几个数就是几维,所以在这里我们的数组是一个简单的1维数组

其次这里的5说明了数组中有5个元素,那这个逗号说明什么呢?代表了这5个元素所处的维度,可以理解为列或者行。通过1维数组可能理解起来还是有些抽象,那么我们来增加它到2维来看一下。

array = np.array([[1,2,3],[4,5,6]])
array
array([[1, 2, 3],
       [4, 5, 6]])
array.shape
(2, 3)
array.ndim

现在我们得到了一个2维数组array,2维数组还有一个响亮的名字叫矩阵,那么来看一下shape以后的结果吧,可以得到这是一个2维数组,拥有6个元素(2乘以3),这个数组的排列是如何的呢?先行后列,所以我们的数组拥有2行3列,正如上面的数组结果,放到实战中理解就是,2条数据3个变量,2维数组是今后我们经常使用的数组。除此之外我们还可以通过 array.ndim 来直接得到数组的维度。

  • 计算

在明白了维度这个概念以后,我们便可以更好的进行数组的运算:

import numpy as np
array = np.array([[1,2,3],[4,5,6]])
array
array([[1, 2, 3],
       [4, 5, 6]])

在这里我们得到了一个(2,3)的二维数组,既然是二维就有了行和列的概念,那我们看看怎么来求这个数组的和吧。

#1
np.sum(array)
#2
np.sum(array,axis = 0)#按照行的维度计算
array([5, 7, 9])
#3
np.sum(array,axis = 1)#按照列的维度计算
array([ 6, 15])

第一个结果为21,python一股脑的把所有元素加在一起,因为我们没有告诉它顺序。
第二个结果是一个(3,)的一维数组,这里有人可能会产生疑惑,按照行的话不应该是一个(2,)的数组吗?一定要记住是将维度上的元素按照的顺序加起来。
第三个结果其实就是将上的元素按照的顺序相加,得到的同样是一个一维数组。所以我们可以看到,二维数组的计算时,行维度计算结果的元素数等于列数,列维度的结果等于行数。

其实二维数组的运算在我们大部分的数据分析中很常见,所以现阶段可以不必考虑升维以后的运算结果,先搞懂“0”和“1”就足够了,明白了和的运算道理,乘、除、平均数、最大值、方差等都可以通过一样的原理运算出来。

小结:本章只是简单的梳理一下数组的结构,维度的概念,以及通过维度去理解数组的运算。对于初学者而言,需要一段“断生期”去熟悉并理解计算机的“思维逻辑”,牢牢记住一点:在数据工作中,需要我们的不再是计算,而是告诉计算机怎么去计算。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值