数据分析

数据分析

一、Numpy

https://blog.csdn.net/daidadeguaiguai/article/details/105922947

1.什么是Numpy?

NumPy(Numerical Python)是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix)),支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。

NumPy(Numeric Python)提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。专为进行严格的数字处理而产生。多为很多大型金融公司使用,以及核心的科学计算组织如:Lawrence Livermore,NASA用其处理一些本来使用C++,Fortran或Matlab等所做的任务。

**总之,NumPy 是一个运行速度非常快的数学库,主要用于数组计算,**主要包含:

一个强大的N维数组对象 ndarray
广播功能函数
整合 C/C++/Fortran 代码的工具
线性代数、傅里叶变换、随机数生成等功能

2.Numpy的优势

numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算。
Numpy底层使用C语言编写,数组中直接存储对象,而不是存储对象指针,所以其运算效率远高于纯Python代码。
了解更多关于Numpy的 内容:https://www.runoob.com/numpy/numpy-tutorial.html

3.Numpy安装

pip install -i https://pypi.douban.com/simple numpy

4.Numpy创建数组

# 导入numppy库, 对numpy重命名为np。
import numpy as np
 
# 1). 创建数组: a, b, c创建的数组相同, 任选一种;
# 方法一: 直接将数组/列表传入array方法中, 将数据类型转换为ndarray.
a = np.array([1, 2, 3, 4, 5])
# array方法传入的值可以是range对象
# 方法二: 将range对象传入array方法中, dtype:数据类型dtype=np.float 将元素转换为float
b = np.array(range(1, 6))
print(b)
li = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11.8, 12]
]
# 转换数据类型时可以通过dtype对数组的所有对象转换类型. eg: dtype=np.int将元素转成int
li_ndarray = np.array(li, dtype=np.int)
print(li_ndarray)
 
# 方法三: 直接生成指定的数值
c = np.arange(1, 6)
# arange和range的基本语法和参数一致。 arange的优点: 可以生成小数区间.
d = np.arange(2.2, 13.3, 0.2)
print(a, b, c)
 
# # # 2). 查看numpy创建的数组类型
print(type(a))
print(type(b))
print(type(c))
 
# 3). 查看数组存储的数据类型, 常见的数据类型还有哪些?
print(a.dtype)   # 为什么是int64? 因为硬件架构是64位;
 
# # 4). 制定创建的数组的数据类型
d = np.array([1.9, 0, 1.3, 0], dtype=np.float)
print(d, d.dtype)
 
# 5). 修改数组的数据类型
e = d.astype('int64')   # 里面可以是数据类型, 也可以是数据代码;int64---i1
print(e, e.dtype)
 
# 6). 修改浮点数的小数点位数
# 随机创建一个三行四列的数组;
f = np.random.random((3, 4))
print(f)
 
# 修改浮点值的小数位数为3位
g = np.round(f, 3)
print(g)

5.Numpy的索引和片

注意:只有一个参数时,默认获取的是行,有两个参数时,第一个参数代表行,第二个参数代表列。行和列的索引是从0开始的。

import numpy as np
#1)生成测试数据
a = np.arange(12).reshape((3, 4))
print(a)
 
# *****************取单行或者单列*********************
# 取第2行;
print(a[1])
# 取第3列;
print(a[:, 2])
# 获取第2行3列的数据
print(a[1, 2])
 
# *****************取连续行或者列*********************
# 取第2行和第3行;
print(a[1:3])
 
# 取第3列和第4列
print(a[:, 2:4])
 
# 行: 1和2   列: 2
print(a[0:2, 1:2])
 
# *****************取不连续的行或者列*********************
# 行: 1和3   列: all 获取第一行和第三行的所有元素
print(a[[0, 2], :])
# 行: all   列: 1, 4
print(a[:, [0, 3]])
# 行: 1 , 3   列: 1 4  获取第一行第一列的元素, 和第三行第4列的元素
print("*"*10)
print(a[[0, 2], [0, 3]])

6.案例一(Numpy学生身高体重统计分析)

需求1:
    获取所有男生的身高, 求平均值;获取所有女生的身高, 求平均值;并绘制柱状图显示
    1). 读取文件中的Sex和Height
    2). 根据布尔索引判断姓名, 获取男性的身高或者女性的身高  data['gender'] == 'M'
    3). 求平均值mean函数
 
需求2:
    获取所有男生的体重, 求平均值;获取所有女生的体重, 求平均值;并绘制柱状图显示
import numpy as np
def get_avg_height():
    fname = "doc/eg6-a-student-data.txt"
    # 定义读取列的数据类型
    dtype = np.dtype([('gender', '|S1'), ('height', 'f2')])
    # 读取文件的第2列和第3列, 前9行忽略;
    data = np.loadtxt(fname=fname, dtype=dtype, skiprows=9,
                      usecols=(1, 3))
    print(data)
    print
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值