热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python数据分析(1)Numpy库使用方法

Numpy是一个开源的Python科学计算库,它是python科学计算库的基础库,许多其他著名的科学计算库如Pandas,Scikit-learn等都要用到Numpy库的一些功能。Num
Numpy是一个开源的Python科学计算库,它是python科学计算库的基础库,许多其他著名的科学计算库如Pandas,Scikit-learn等都要用到Numpy库的一些功能。
Numpy数组通常是由相同种类的元素组成的,即数组中的数据项的类型一致。这样有一个好处,由于知道数组元素的类型相同,所以能快速确定存储数据所需空间的大小。Numpy数组能够运用向量化运算来处理整个数组,速度较快;而Python的列表则通常需要借助循环语句遍历列表,运行效率相对来说要差。Numpy使用了优化过的C API,运算速度较快

#coding=gbk
#numpy数组的大小是固定的
import numpy as np  #导入包
from matplotlib.pyplot import axis
a=np.array([1,2,3])
print(a)    #输出:[1 2 3]
print('分割线------')
#array()参数可以是单层或多层列表
b=np.array([[1.2,3.4],[2.6,4.5]])
print(b)    #shuhcu :[[1.2 3.4]
             #           [2.6 4.5]]
print(b.ndim)   #2,表示数组的维度
print(b.size)   # 4,表示数据的个数
print(b.shape)  # (2, 2)
#array()参数可以是单层或多层元组,结果与参数是列表是一样的
c=np.array(((1,2,3),(4,5,6)))
print(c)    
# #输出:
# [[1 2 3]
#  [4 5 6]]
numpy数据类型:

#numpy数据类型
#使用dtype定义数据类型
f=np.array([[1,2],[3,4]],dtype=complex)
print(f)
# [[1.+0.j 2.+0.j]    输出类型为复数形式
#  [3.+0.j 4.+0.j]]

#创建数组的函数
g=np.zeros((3,3))   #创建3行3列的数组
print(np.ones((3,3)))
print(np.arange(0,12).reshape(3,4))
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]]
print(np.linspace(1,15,5))
#[ 1.   4.5  8.  11.5 15. ]    将其分成5份
print(np.random.random((3,3)))
# [[0.68333882 0.64261184 0.31273476]    生成3行3列的随机数
#  [0.34138222 0.62380152 0.24387784]
#  [0.70731665 0.5085779  0.26858421]]

#基本运算
A=np.arange(0,9).reshape((3,3))
B=np.arange(10,19).reshape((3,3))
print(A+B)
# [[10 12 14]    numpy中的数组运算都是元素级,即将一个数组看做一个整体
#  [16 18 20]
#  [22 24 26]]
print(A*B)
# [[  0  11  24]
#  [ 39  56  75]
#  [ 96 119 144]]
#矩阵乘积
print(np.dot(A,B))
# [[ 45  48  51]
#  [162 174 186]
#  [279 300 321]]    表示A矩阵和B矩阵相乘
#自减自加
A+=1
B-=1
print(A)
# [[1 2 3]        A全部元素自加 1
#  [4 5 6]
#  [7 8 9]]
print(B)
#聚合函数:对一个数组计算,返回一个单一值得函数
print(np.mean(B))   #得到一个平均值
print(np.median(B))
print(np.var(B))    #得到方差  6.666666666666667
print(np.sqrt(np.var(B)))
print(np.std(B)) #得到标准方差 2.581988897471611
#索引
print(A[1,2]) #形式如: A[ ] ,查找第2行第3列的数据
#切片
print(A[0,:])   #抽取第一行    [1 2 3]
print(A[:,0])
print(A[0:2,0:2])#抽取 前2行前2列
#数组迭代
for items in A.flat:
    print(items)    #遍历A数组中每个元素
a1=np.apply_along_axis(np.mean, axis=1, arr=A)
print(a1)   #[2. 5. 8.] ,    axis=1 求得每行的平均数 ,axis=0时,求得每列的平均数

def add(x):
    return x+12
a2=np.apply_along_axis(add, axis=1, arr=A)
print(a2)
#布尔操作
print(A>5)
# [[False False False]        获得bool形式的数组
#  [False False  True]
#  [ True  True  True]]
print(A[A>5])   #获得大于5的新的数组    [6 7 8 9]

A1=np.array(np.random.random((3,4)))
print(A1)
print(A1.ravel())   #使数组转换成一维数组
print(A1.transpose())   #交换行列的顺序

#数组操作
#1数组连接
c=np.ones((3,3))
b=np.zeros((3,3))
print(np.vstack((c,b))) #垂直入栈操作,即在c的下面增加
# [[1. 1. 1.]
#  [1. 1. 1.]
#  [1. 1. 1.]
#  [0. 0. 0.]
#  [0. 0. 0.]
#  [0. 0. 0.]]
print(np.hstack((c,b))) #水平入栈,在右边入栈
# [[1. 1. 1. 0. 0. 0.]
#  [1. 1. 1. 0. 0. 0.]
#  [1. 1. 1. 0. 0. 0.]]
#2数组切分
b1=np.arange(16).reshape(4,4)
print(b1)
# [[ 0  1  2  3]
#  [ 4  5  6  7]
#  [ 8  9 10 11]
#  [12 13 14 15]]
[b2,b3]=np.hsplit(b1,2)     #水平切分,按照数组的宽度切分
print(b2)
# [[ 0  1]
#  [ 4  5]
#  [ 8  9]
#  [12 13]]
[b7,b8]=np.vsplit(b1,2)     #垂直切分,按照数组的高度切分
print(b7)
# [[0 1 2 3]
#  [4 5 6 7]]
[b4,b5,b6]=np.split(b1,[1,3],axis=1)   #将b1数组分为3组 
print(b4)
# [[ 0]    输出最后一列
#  [ 4]
#  [ 8]
#  [12]]

#广播机制
f1=np.arange(4)
f2=np.arange(16).reshape(4,4)
print(f1+f2)
# [[ 0  2  4  6]    
#  [ 4  6  8 10]
#  [ 8 10 12 14]
#  [12 14 16 18]]
参考《Python数据分析实战》

推荐阅读
  • #点球小游戏fromrandomimportchoiceimporttimescore[0,0]direction[left,center,right]defkick() ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本教程详细介绍了如何使用 TensorFlow 2.0 构建和训练多层感知机(MLP)网络,涵盖回归和分类任务。通过具体示例和代码实现,帮助初学者快速掌握 TensorFlow 的核心概念和操作。 ... [详细]
  • 本文介绍如何使用 Python 的 Pandas 库中 Series 对象的 round() 方法,对数值进行四舍五入处理。该方法在数据预处理和分析中非常有用。 ... [详细]
  • Python处理Word文档的高效技巧
    本文详细介绍了如何使用Python处理Word文档,涵盖从基础操作到高级功能的各种技巧。我们将探讨如何生成文档、定义样式、提取表格数据以及处理超链接和图片等内容。 ... [详细]
  • 本文详细介绍了如何在C#程序运行期间防止系统进入休眠模式以及显示器关闭,提供了具体的实现代码示例,并解释了其应用场景。这不仅有助于提高程序的稳定性,还能优化能源管理。适合需要处理长时间任务(如下载或批处理)的开发者参考。 ... [详细]
  • 本文详细介绍了Python中的可迭代对象、迭代器和生成器的概念及实现方式。通过实例代码展示如何创建和使用这些对象,帮助读者更好地理解和掌握其原理。 ... [详细]
  • 本文介绍如何利用 Python 中的 NumPy 和 Matplotlib 库,从 NumPy 数组中绘制线图。通过具体的代码示例和详细解释,帮助读者理解并掌握这一技能。 ... [详细]
  • 在本教程中,我们将深入探讨如何使用 Python 构建游戏的主程序模块。通过逐步实现各个关键组件,最终完成一个功能完善的游戏界面。 ... [详细]
  • 本文详细介绍了C++中map容器的多种删除和交换操作,包括clear、erase、swap、extract和merge方法,并提供了完整的代码示例。 ... [详细]
  • 使用Python计算文件的CRC32校验值
    本文记录了一次对路由器固件分析时,如何利用Python计算文件的CRC32校验值。文中提供了完整的代码示例,并详细解释了实现过程。 ... [详细]
  • Python实现斐波那契数列的方法与优化
    本文详细介绍了如何在Python中编写斐波那契数列,并探讨了不同的实现方法及其性能优化。通过递归、迭代和公式法,读者可以了解每种方法的优缺点,并选择最适合自己的实现方式。 ... [详细]
  • 二维几何变换矩阵解析
    本文详细介绍了二维平面上的三种常见几何变换:平移、缩放和旋转。通过引入齐次坐标系,使得这些变换可以通过统一的矩阵乘法实现,从而简化了计算过程。文中不仅提供了理论推导,还附有Python代码示例,帮助读者更好地理解这些概念。 ... [详细]
  • 本文介绍了如何利用Python进行批量图片尺寸调整,包括放大和等比例缩放。文中提供了详细的代码示例,并解释了每个步骤的具体实现方法。 ... [详细]
author-avatar
我是vb小草
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有