【机器学习】NumPy、Panda相关数据结构学习

NumPy学习

NumPy重要的一个特点:是一个N维数组对象。提供了shape(指明行数、列数)和dtype(数据类型)

初始化

1 data1 = [3,5]
2
3 arr1 = np.array(data1)
4 arr1
5 输出:array([3, 5])

注意,如果有切片来自于该数据,改变切片,也会改变原来的数据。

Panda

主要由Series和DataFrame组成。

Series

1,Series包括了index和values,其中values数据包括各种NumPy数据类型。与NumPy相比,可以通过索引的方式选取Series的单个或一组值。

2,Series可以看出是一个定长的有序字典,也可以直接通过map来创建Series.

data = {‘o‘:1,‘h‘:2} || obj = Series(data)

3,可用isnull()、notnull()来检测缺失的数据;

4,一个重要的功能:两个索引可能不同的Series相加时,可以自动对齐不同索引的数据。空的地方,会自动以Nan补齐。

1 输入
2 obj=pd.Series([4,6,7])
3 输出:
4
5 >>> obj
6 0 4
7 1 6
8 2 7
9 dtype: int64

DataFrame

DataFrame是一个表格型的数据结构,既有行索引,也有列索引。

1, DataFrame初始化: 直接传入一个由等长列表或NumPy数组组成的字典:

 1 data = {‘state‘:[‘ohio], ‘year‘:[2000]}
 2 frame=pd.DataFrame(np.arange(12.).reshape((4,3)), columns=list(‘bde‘), index=[‘Utah‘,‘Ohio‘,‘Texas‘,‘Oregon‘])
 3
 4 输出:
 5
 6 >>> frame
 7 b d e
 8 Utah 0.0 1.0 2.0
 9 Ohio 3.0 4.0 5.0
10 Texas 6.0 7.0 8.0
11 Oregon 9.0 10.0 11.0
12
13 data = DataFrame(np.arange(16).reshape(4,4),index=list(‘abcd‘),columns=list(‘wxyz‘))

简单总结

data[‘w‘] #选择表格中的‘w‘列,使用类字典属性,返回的是Series类型

data.w #选择表格中的‘w‘列,使用点属性,返回的是Series类型

data[[‘w‘]] #选择表格中的‘w‘列,返回的是DataFrame属性

data[[‘w‘,‘z‘]] #选择表格中的‘w‘、‘z‘列

data[0:2] #返回第1行到第2行的所有行,前闭后开,包括前不包括后

data[1:2] #返回第2行,从0计,返回的是单行,通过有前后值的索引形式,
#如果采用data[1]则报错

df[]只能进行行选择,或列选择,不能同时进行列选择,列选择只能是列名。

dataframe.drop([columns]) 剔除某一列

时间: 2024-11-05 13:35:51

【机器学习】NumPy、Panda相关数据结构学习的相关文章

小猪的数据结构学习笔记(二)

小猪的数据结构学习笔记(二) 线性表中的顺序表 本节引言: 在上个章节中,我们对数据结构与算法的相关概念进行了了解,知道数据结构的 逻辑结构与物理结构的区别,算法的特性以及设计要求;还学了如何去衡量一个算法 的好坏,以及时间复杂度的计算!在本节中我们将接触第一个数据结构--线性表; 而线性表有两种表现形式,分别是顺序表和链表;学好这一章很重要,是学习后面的基石; 这一节我们会重点学习下顺序表,在这里给大家一个忠告,学编程切忌眼高手低,看懂不代表自己 写得出来,给出的实现代码,自己要理解思路,自己

和机器学习和计算机视觉相关的数学(转载)

1. 线性代数 (Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是Introduction to Linear Algebra (3rd Ed.)  by Gilbert Strang.这本书是MIT的线性代数课使用的教材,也是被很多其它大学选用的经典教材.它的难度适中,讲解清晰,重要

[转]和机器学习和计算机视觉相关的数学

http://blog.sina.com.cn/s/blog_6833a4df0100nazk.html 1. 线性代数 (Linear Algebra): 我想国内的大学生都会学过这门课程,但是,未必每一位老师都能贯彻它的精要.这门学科对于Learning是必备的基础,对它的透彻掌握是必不可少的.我在科大一年级的时候就学习了这门课,后来到了香港后,又重新把线性代数读了一遍,所读的是 Introduction to Linear Algebra (3rd Ed.) by Gilbert Stra

和机器学习和计算机视觉相关的数学

和机器学习和计算机视觉相关的数学 和机器学习和计算机视觉相关的数学之一 (以下转自一位MIT牛人的空间文章,写得很实际:) 作者:Dahua 感觉数学似乎总是不够的.这些日子为了解决research中的一些问题,又在图书馆捧起了数学的教科书.从大学到现在,课堂上学的和自学的数学其实不算少了,可是在研究的过程中总是发现需要补充新的数学知识.Learning和Vision都是很多种数学的交汇场.看着不同的理论体系的交汇,对于一个researcher来说,往往是非常exciting的enjoyable

小猪的数据结构学习笔记(五)

小猪的数据结构学习笔记(五) 线性表之--循环链表                           --转载请注明出处:coder-pig 循环链表知识点归纳: 相关代码实现: ①判断是否为空表: ②单循环链表的存储结构 其实和单链表的结构是一样的! /*定义循环链表的存储结构*/ typedef struct Cir_List { int data; struct Cir_List *next; }Lnode; ③初始化循环单链表 代码如下: //1.循环链表的初始化 //表示一个元素,如

[数据结构学习备忘录]堆及其堆排序

[数据结构学习备忘录] 堆 一种数据结构,物理存储方式:数组 逻辑存储方式:近似于完全二叉树,假定i为堆元素的序数[Index],那么i/2就是该元素的左子树,(i/2 + 1)就是该元素的右子树,分为两种堆:大根堆.小根堆:这两种堆的区别是:大根堆的根节点元素的值比左右子树的值都要大,小根堆则相反. 可用这种数据结构进行排序,称为堆排序. 与该数据结构相关的关键算法: ①   MaxHeaplfy 当堆的元素顺序出现错误时的调整函数 ②   BulidMax[min]Heap 建立大[小]根堆

linux内核数据结构学习总结(undone)

本文旨在整理内核和应用层分别涉及到的数据结构,从基础数据结构的角度来为内核研究作准备,会在今后的研究中不断补充 目录 1. 进程相关数据结构 1) struct task_struct 2. 内核中的队列/链表对象 3. 内核模块相关数据结构 2) struct module 1. 进程相关数据结构 0x1: task_struct 我们知道,在windows中使用PCB(进程控制块)来对进程的运行状态进行描述,对应的,在linux中使用task_struct结构体存储相关的进程信息,task_

机器学习(Machine Learning)&深度学习(Deep Learning)资料

机器学习(Machine Learning)&深度学习(Deep Learning)资料 機器學習.深度學習方面不錯的資料,轉載. 原作:https://github.com/ty4z2008/Qix/blob/master/dl.md 原作作者會不斷更新.本文更新至2014-12-21 <Brief History of Machine Learning> 介绍:这是一篇介绍机器学习历史的文章,介绍非常全面.从感知机.神经网络.决策树.SVM.Adaboost到随机森林.Deep L

小猪的数据结构学习笔记(三)

小猪的数据结构学习笔记(三) 线性表之单链表 本章引言: 上一节中我们见识了第一个数据结构--线性表中的顺序表; 当你把操作的代码自己写几遍就会有点感觉了,如果现在让你写顺序表的 插入算法,你能够想出大概的代码么?如果可以,那么你就可以进入新的章节了; 否则,还是回头看看吧!在本节,我们将迎来线性表的链式表示--单链表 单链表和顺序表有什么优势和劣势呢?单链表的头插法和尾插法有什么不同呢? 请大家跟随笔者的脚步来解析线性表中的单链表把! 本节学习路线图 路线图解析: ①先要理解顺序表和单链表各自