Numpy常用的数据结构

numpy安装
pip install numpy
numpy底层是使用C语言来实现运算的效果非常高

数据清洗的意义

  • 现实生活中,数据并非完美,需要进行清洗才能进行后面的数据分析
  • 数据清洗是整个数据分析项目最消耗时间的一步
  • 数据的质量最终决定了数据分析的准确性
  • 数据清洗是唯一可以提高数据质量的方法,使得数据分析的结果也变得更加可靠

数据清洗常用工具

  • 目前在Python中,numpy和pandas是最主流的工具
  • numpy中的向量化运算使得数据处理变得高效
  • pandas提供了大量数据清洗的高效方法
  • 在Python中,尽可能多的使用numpy和pandas中的函数,提高数据清洗的效率

arange和rang的区别

  • 在Python中range只能迭代整型
  • numpy中的arange步可以为浮点型

numpy常用的数据结果

  • numpy中常用的数据结果是ndarray格式
  • 使用array函数创建,语法格式为array(列表或元组)
  • 可以使用其他函数例如:arange(迭代器) 、linspace(等差数组)、zeros等创建

numpy常用方法
zeros
ones
dtype
size:返回数组中使用元素的总和
shape:查看该数组的行和列数(返回的结果是元组类型(当只有))
ndmin:查看数组为多少维数组

在这里插入图片描述

练习代码

# -*- coding: utf-8 -*- 
# @Time : 2020/2/1 19:35 
# @Author : 大数据小J

import numpy as np

"""
array 
里面可以传字符串,字典,元组,列表
np.dtype 返回的结果是numpy这个数据类型
dtype=None  array里面有这个参数,这个参数的意思是可以强制转换数据类型。(强制类型转换,只能够是列表和元组,并且里面的数据为统一数据)
:代表着
"""

a = np.array([1, 2, 3, 4, 5], dtype=float)  # [1. 2. 3. 4. 5.] 当传入的数据类型为列表类型,返回的结果为列表类型
b = np.array((1, 2, 3, 4, 5))  # [1 2 3 4 5] 当传入的数据为元组类型,返回的结果也是列表类型
c = np.array('demo')  # demo 当传入字符串类型,返回的结果为字符串类型
d = np.array({'name': 'Big_data J'})  # {'name': 'Big_data J'} 当传入的结果为字典类型,返回的结果为字典类型
# print(np.dtype)   # <class 'numpy.dtype'>  返回的结果为numpy这个数据类型
e = np.array((1, 2, 3, 4, 5), dtype=str)  # ['1' '2' '3' '4' '5'] 可以强制转换为字符串类型
arr = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])  # 使用array可以创建列表嵌套数据,也可以生成二维数据以上等
# print(arr)
# print(arr[0])   # [1 2 3 4]返回的结果为列表的第一行数据,numpy也是从0开始
# print(arr[1])   # [5 6 7 8]返回的结果为列表的第二行数据
# print(arr[2])   # [ 9 10 11 12]返回的结果为列表的第三行数据
# print(arr[1:2])  # [[5 6 7 8]] 返回的结果是遵从左闭右开的原则。
# print(arr[1:3])  #[[ 5  6  7  8] [ 9 10 11 12]]
# print(arr[0, 1])  # 2 array中是以”,“来操控
"""
np.arange()
意思:和range差别不大,但可以指定步长为浮点型  
这个方法是numpy里面的迭代器与range和像
arange 和 range 有什么区别? 区别在于 arange可以生成浮点型   range只能生成整型
arange 也是一个左闭右开的原则
"""
ara = np.arange(1, 10, 0.5)  # [1.  1.5 2.  2.5 3.  3.5 4.  4.5 5.  5.5 6.  6.5 7.  7.5 8.  8.5 9.  9.5] 可以指定步长为浮点型
# print(ara)

"""
linspace 
意思:等差数组
常见的参数: start, stop, num=50, endpoint=True
start:开始值
stop: 结束值
num=50: 默认情况下,这个参数为50,这代表着元素个数,生成的元素
endpoint=True : 默认情况下为True,意思是:是否包含其结束值(也就是stop)
"""
# lin = np.linspace(1, 10, 10, endpoint=True)  # endpoint默认情况下为True,当我们想不包含其结束值的时候可修改为False
# print(lin)   # [ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]  返回的结果为浮点类型的等差数组

lin2 = np.linspace(1, 5, 10, endpoint=True)  # [1.         1.44444444 1.88888889 2.33333333 2.77777778 3.22222222
# 3.66666667 4.11111111 4.55555556 5.        ]   生成的结果算法为4/9

"""
zeros
意思:生成一个为0的数据
常见的参数shape, dtype=None, order='C'
shape:传参 (传入的数据类型可以为列表,元组).第一个值为行,第二个值为列
dtype:强制类型转换

ones
意思:生成一个为1的数据
常见的参数shape, dtype=None, order='C'
shape:传参 (传入的数据类型可以为列表,元组),第一个值为行,第二个值为列
dtype:强制类型转换

ndim
意思:判断一个数组是几维数组

shape
意思:查看数组为几行几列。当为一维数组的时候(返回的结果为(4,))
返回的数据类型为元组类型

size
意思:返回数组里面有多少个元素

dtype
意思:返回数组的数据类型
"""
ze = np.zeros(shape=[4, 5])  # 生成一个四行五列的二维数据
ze1 = np.zeros(4)  # [0. 0. 0. 0.] 返回的结果为一维数组  默认情况下为浮点类型
# print(ze1)

on = np.ones(4)  # [1. 1. 1. 1.] 生成一个一维数组 默认情况下为浮点数据类型
on1 = np.ones([4, 5], dtype=int)  # 生成一个二维数组 浮点型
# print(on1+1.5)   # 可以对数组的值进行加法运算

# print(on1.ndim)  # 2 查看数组的行和列,返回为元组类型
# print(on.shape)  # (4,) 返回的结果为元组类型   一维数组直接输出列数
print(on1.shape)  #(4, 5) 二维数组先行后列

# print(on.size)  # 4  返回数组里面的元素个数
# print(on1.size)  # 20

# print(on.dtype)  # float64 返回的结果为浮点类型
# print(on1.dtype)  # int32 返回的结果为整型

data = ((1, 1.5, 2.5, 3.3, 4.4,), (2, 3.4, 5.5, 6.6, 7.7), (7.7, 8.8, 9.9, 2.2, 6.7))
demo = np.array(data)
# print(demo[1, 4])   # 2.5 从0开始,第一个值为行索引,第二个值代表列索引
# print(demo[1:, 2])  # [5.5 9.9]  先选择第一行以后的数组,在选择第一行以后的数组的第二个列数
# print(demo[:, 1:3])  # 不选择起始值和结束值, 在进行选择行的第1列到第3列(但不包含第三列)

发布了54 篇原创文章 · 获赞 26 · 访问量 6169

猜你喜欢

转载自blog.csdn.net/qq_37662827/article/details/104138899