zoukankan      html  css  js  c++  java
  • 利用Python进行数据分析(一)Numpy基础:数据和矢量计算

    对于大部分数据分析应用而言,最关注的功能主要集中在:

    • 用于数据整理和清理、子集构造和过滤、轮换等快速的矢量化运算
    • 常用的数组算法,如排序、唯一化、集合运算等
    • 高效的描述统计和数据集合、摘要运算
    • 用于异构数据集的合并、连接运算的数据对齐和关系型数据运算
    • 将条件逻辑表述为数组表达式(而不是带有if-else-else分支的循环)
    • 数组的分组运算(聚合、转换、函数应用等)

    NumPy的nDarray:一种多维数组对象

    Numpy最重要的特点就是N维数组对象(即ndarray),该对象是一个快速而灵活的大数据集容器。可以利用这种数组对整块数据执行一些数学运算,其语法和标量元素之间的运算一样:

    ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素都必须是相同类型的,每一个数组都有一个shape(一个表示各维度大小的元组)和一个dtype(一个用于说明数组数据类型的对象).虽然不需要深入理解Numpy,但是精通面向数组的编程和思维方式是成为Python科学计算牛人的一大关键步骤。

    注意:当看到数组,Numpy数组,ndarray时,基本上是指同一样东西,即ndarray对象

    创建ndarray

    创建数组最简单的方法是使用array函数,它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入数据的Numpy数组。

     嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组:

     除非显式说明,np.array会尝试为新建的这个数组推断出一个较为合适的数据类型。数据类型保存在一个特殊的stype对象中。

    除np.array之外,还有一些函数也可以新建数组,比如,zeros和mones分别可以创建指定长度或形状的全0或全1数组,empty可以创建一个没有任意具体值得数组。要用这些方法创建多维数组,只需传入一个表示形状的元祖即可

    注意:认为np.empty会返回全0数组是不安全的,很多情况,他返回的都是一些未初始化的垃圾值

     arange是Python内置函数range的数组版:

     由于numpy关注的是数值计算,所以如果没有特别的指定,数据类型基本都是float64(浮点型)

    数组创建函数:

     数值型dtype的命名方式:一个类型名(flaot或int)后面跟一个用于表示各元素位长的数字

    numpy所有的数据类型

     

    可以通过ndarray的astype显式的转换其dtype:

    在上面的例子中,整数被转换为了浮点数,如果将浮点数转换为整数,则小数部分将会被截断

  • 相关阅读:
    PAT 甲级 1129 Recommendation System
    PAT 甲级 1129 Recommendation System
    PAT 甲级 1128 N Queens Puzzle (20 分)
    PAT 甲级 1128 N Queens Puzzle (20 分)
    PAT 甲级 1096 Consecutive Factors (20 分)
    PAT 甲级 1096 Consecutive Factors (20 分)
    PAT 甲级 1135 Is It A Red-Black Tree (30 分)
    PAT 甲级 1135 Is It A Red-Black Tree (30 分)
    AcWing 900. 整数划分
    AcWing 899. 编辑距离 线性dp
  • 原文地址:https://www.cnblogs.com/sannyhome/p/13602113.html
Copyright © 2011-2022 走看看