【数据分析】Numpy (一)

简介: 【数据分析】Numpy (一)

目录


1.Numpy简介:


 Numpy用途:


2.Numpy的简单使用:


       2.1导入Numpy:


       2.1查看numpy的版本:


编辑3.NumPy - Ndarray 对象


       3.1ndarray属性:


3.2 numpy.array参数构造


3.3创建numpy数组:


3.4numpy库创建数组的集中内置函数:


4.numpy索引和切片:


       4.1索引:


       4.2切片:      


一维数组:


二维数组:

1.Numpy简介:


NumPy 是一个 Python 库。 英文是 “Numeric Python”。 它是一个由多维数组对象和用于处理数组的例程集合组成的库。


Numeric,即 NumPy 的前身,是由 Jim Hugunin 开发的。 也开发了另一个包 Numarray ,它拥有一些额外的功能。 2005年,Travis Oliphant 通过将 Numarray 的功能集成到 Numeric 包中来创建 NumPy 包。 这个开源项目有很多贡献者。


Numpy用途:


  • 数组的算数和逻辑运算。


  • 傅立叶变换和用于图形操作的例程。


  • 与线性代数有关的操作。 NumPy 拥有线性代数和随机数生成的内置函数


2.Numpy的简单使用:


     2.1导入Numpy:


    import numpy as np


通常我们将numpy简称为np。


      2.1查看numpy的版本:

import numpy as np
print("numpy版本为:",np.__version__)
3.NumPy - Ndarray 对象

        3d2b32e1f17345d69fcae118d74d9501.png

3.NumPy - Ndarray 对象


NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型。 它描述相同类型的元素集合。 可以使用基于零的索引访问集合中的项目。ndarray中的每个元素在内存中使用相同大小的块。 ndarray中的每个元素是数据类型对象的对象(称为 dtype)。


      3.1ndarray属性


       维度:ndim ,直接返回维度数

       形状:shape,数字有几个就表示几维数组

       总长度:size,返回总数据量

       元素类型:dtype

n1 = np.random.randint(1,10,(3,5))
print(n1)
print("维度:%d,形状:%s,总长度:%s,元素类型:%s"%(n1.ndim,n1.shape,n1.size,n1.dtype))

9bf809b384534ce79e594def875c2c90.png


3.2 numpy.array参数构造


numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)

image.png

3.3创建numpy数组:


n1=np.array()


示例1: 下面我们创建一个一维数组:


a = np.array([1,2,3])  
print(a)

输出如下:

[1, 2, 3]

实例2:下面是一个二维数组


a = np.array([[1,  2],  [3,  4]])  
print(a)

输出为:


[[1, 2] 
 [3, 4]]

示例3:便捷创建一个全为为0或者全为1的数组


a = np.zeros((3,3))
b = np.ones((3,2),dtype=np.float)
print(a)
print(b)


输出为:

166ced5511aa4b4a929bfb757c16c01f.png


3.4numpy库创建数组的集中内置函数:

arrange()函数用法:arange([start,] stop[, step,], dtype=None),start 为起始数,stop 为结束数,创建一个连续的一维数组。


linspace()函数用法:np.linspace(start,stop,num),创建一个包含 num 个数的等差数列,公差 d 等于多少由系统计算。


eye()函数用法:np.eye(N, M=None, k=0, dtype=<class ‘float’>, order=‘C’),N 是行数,M 是列数,K 是偏移量,创建一个单位矩阵数组。


normal()函数用法:normal(loc=0.0, scale=1.0, size=None),loc 表示均值,scale 表示标准差,size等价于 shape ,创建一个服从正态分布的多维数组。


randn() 函数用法:randn(d0, d1, …, dn),创建一个服从标准正态分布(X ~ N(0,1))的多维数组。也就是说,产生的数据大部分生成在0左右。


4.numpy索引和切片:


      4.1索引:

       在 ndarray 数组中,索引的使用有两种等价方式,即 n [M,N] = n [M][N],M表示第一个维度,N表示第二个维度,若不止二维,以此类推,n[M,N,P,……]。        


n1 = np.random.randint(1,10,(3,5))
print(n1)
print("n1[2,3]=%s,n1[2][3]=%s"%(n1[2,3],n1[2][3]))

1e9c1157c86b45609abd8601cdd9dcd7.png


       4.2切片:      

numpy数组切片操作 列表用 [ ] 标识,支持字符,数字,字符串甚至可以包含列表(即嵌套)。,是 python 最通用的复合数据类型


一维数组:

a=[1,2,3.4,5]
print(a)
[ 1 2 3 4 5 ]
print(a[-1])     取最后一个元素
    结果:[5]
   
print(a[:-1])     除了最后一个取全部
    结果:[ 1 2 3 4 ]
   
print(a[1:])     取第二个到最后一个元素
    结果:[2 3 4 5]
print(a[::-1])     取从后向前(相反)的元素
结果:[ 5 4 3 2 1 ]
print(a[2::-1])     取从下标为2的元素**翻转读取**
结果:[ 3 2 1 ]
s='abcdefg'
print(s[0:4] #输出abcd
print(s[0:4:2]) #步长为 2(间隔一个位置)来截取,输出ac

二维数组

二维数组(逗号,)

X[n0,n1]是通过 numpy 库引用二维数组或矩阵中的某一段数据集的一种写法。

类似的,X[n0,n1,n2]表示取三维数组,取N维数组则有N个参数,N-1个逗号分隔。


取元素 X[n0,n1]

这是最基本的情况,表示取 第0维 的第 n0 个元素,继续取 第1维 的第 n1个元素。如 X[2,2] 表示第0维第2个元素[20,21,22,23],然后取其第1维的第2个元素即 22;


切片 X[s0:e0,s1:e1]

这是最通用的切片操作,表示取 第0维 的第 s0 到 e0 个元素,继续取 第1维 的第 s1 到 e1 个元素(左闭右开)。如 X[1:3,1:3] 表示第0维第(1:3)个元素[[10,11,12,13],[20,21,22,23]],然后取其第1维的第(1:3)个元素即 [[11,12],[21,22]];


切片特殊情况 X[:e0,s1:]

特殊情况,即左边从0开始可以省略X[:e0,s1:e1],右边到结尾可以省略X[s0:,s1:e1],取某一维全部元素X[:,s1:e1],事实上和Python 的 序列切片规则是一样的。


常见的 X[:,0] 则表示 第0维取全部,第1维取0号元素;


import numpy as np
X = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,32,33]])
#X 是一个二维数组,维度为 0 ,1;第 0 层 [] 表示第 0 维;第 1 层 [] 表示第 1 维;
# X[n0,n1] 表示第 0 维 取第n0 个元素 ,第 1 维取第 n1 个元素
print(X[1,0])
# X[1:3,1:3] 表示第 0 维 取 (1:3)元素 ,第 1 维取第(1:3) 个元素
print(X[1:3,1:3])
# X[:n0,:n1] 表示第 0 维 取 第0 到 第n0 个元素 ,第 1 维取 第0 到 第n1 个元素
print(X[:2,:2])
# X[:,:n1] 表示第 0 维 取 全部元素 ,第 1 维取 第0 到第n1 个元素
print(X[:,:2])
# X[:,0]) 表示第 0 维 取全部 元素 ,第 1 维取第 0 个元素
print(X[:,0])


输出:

10
[[11 12]
 [21 22]]
[[ 0  1]
 [10 11]]
[[ 0  1]
 [10 11]
 [20 21]
 [30 31]]
[ 0 10 20 30]

参考博客:Python中numpy数组切片:print(a[0::2])、[::-1]、[::2]、[:,2]、[1:,-1:]、[ : ,: -1],[:,-2:]、[ : n]、[m : ]等含义(详细)_python中[::2]_锵锵锵锵~蒋的博客-CSDN博客【NumPy系列】基本操作 - 一_向阳花花花花的博客-CSDN博客



链接

相关文章
|
9天前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
21 2
|
1月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
47 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
1月前
|
数据采集 数据挖掘 API
Python数据分析加速器:深度挖掘Pandas与NumPy的高级功能
在Python数据分析的世界里,Pandas和NumPy无疑是两颗璀璨的明星,它们为数据科学家和工程师提供了强大而灵活的工具集,用于处理、分析和探索数据。今天,我们将一起深入探索这两个库的高级功能,看看它们如何成为数据分析的加速器。
40 1
|
30天前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--进阶
Python数据分析篇--NumPy--进阶
16 0
|
30天前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--入门
Python数据分析篇--NumPy--入门
32 0
|
3月前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas高级
在上一篇博文中,我们介绍了Python数据分析中NumPy和Pandas的基础知识。本文将深入探讨NumPy和Pandas的高级功能,并通过一个综合详细的例子展示这些高级功能的应用。
|
3月前
|
数据采集 数据挖掘 数据处理
Python数据分析:Numpy、Pandas基础
本文详细介绍了 Python 中两个重要的数据分析库 NumPy 和 Pandas 的基础知识,并通过一个综合的示例展示了如何使用这些库进行数据处理和分析。希望通过本篇博文,能更好地理解和掌握 NumPy 和 Pandas 的基本用法,为后续的数据分析工作打下坚实的基础。
|
4月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
【7月更文挑战第12天】Python的Pandas和NumPy库助力高效数据处理。Pandas用于数据清洗,如填充缺失值和转换类型;NumPy则擅长数组运算,如元素级加法和矩阵乘法。结合两者,可做复杂数据分析和特征工程,如产品平均销售额计算及销售额标准化。Pandas的时间序列功能,如移动平均计算,进一步增强分析能力。掌握这两者高级技巧,能提升数据分析质量和效率。
62 4
|
4月前
|
数据采集 机器学习/深度学习 数据可视化
了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。
【7月更文挑战第5天】了解数据科学面试中的Python数据分析重点,包括Pandas(DataFrame)、NumPy(ndarray)和Matplotlib(图表绘制)。数据预处理涉及缺失值(dropna(), fillna())和异常值处理。使用describe()进行统计分析,通过Matplotlib和Seaborn绘图。回归和分类分析用到Scikit-learn,如LinearRegression和RandomForestClassifier。
99 3
|
4月前
|
数据采集 数据可视化 数据挖掘
数据分析入门:用Python和Numpy探索音乐流行趋势
数据分析入门:用Python和Numpy探索音乐流行趋势