numpy知识学习1-python数据分析与机器学习实战(学习笔记)
numpy知识学习1-python数据分析与机器学习实战(学习笔记)
转自:durian221783310
1.科学计算库numpy
2.numpy基础结构
课程来源: python数据分析与机器学习实战-唐宇迪
1.科学计算库numpy
数据是由一行一列交叉组成的.矩阵的形式比较方便,而且效率也比较高.numpy是专门做矩阵计算的一个库.以及其他很多的操作.
首先要确保numpy是否安装好,安装方法:pip install numpy
而ananconda是默认numpy是安装好的.
1.1Python科学计算——Numpy.genfromtxt介绍
genfromtxt函数的完整形式为:
numpy.genfromtxt(fname, dtype=<type ‘float’>, comments=’#’, delimiter=None, skip_header=0, skip_footer=0, converters=None, missing_values=None, filling_values=None, usecols=None, names=None, excludelist=None, deletechars=None, replace_space=’_’, autostrip=False, case_sensitive=True, defaultfmt=‘f%i’, unpack=None, usemask=False, loose=True, invalid_raise=True, max_rows=None)[source]¶
函数属性介绍:
今天先介绍几个一定会用到的属性:
fname,顾名思义,就是文件名,不详述
delimiter:str,int,or sequence,optional.他是分割值,即表示你的数组用什么来分割。
usecols,即选择读哪几行,在讲文件读入代码的时候,我们通常是将属性集读为一个数组,此时它就派上用场了
dtype,表明改行类型
如果你还有必要知道它的其他的参数,你可以参考它的官方文档
例子1:
from numpy import genfromtxt,zeros
data=genfromtxt(‘iris.csv’,delimiter=’,’,usecols=(0,1,2,3))
target=genfromtxt(‘iris.csv’,delimiter=’,’,usecols=(4),dtype=str)
例子2:
import numpy
world_alcohol=numpy.genfromtxt(“world_alcohol.txt”,delimiter=",")
print(type(world_alcohol))
print(world_alcohol)
Python科学计算——Numpy.genfromtxt
输出结果:
<class ‘numpy.ndarray’>
[[ nan nan nan nan nan]
[1.986e+03 nan nan nan 0.000e+00]
[1.986e+03 nan nan nan 5.000e-01]
…
[1.987e+03 nan nan nan 7.500e-01]
[1.989e+03 nan nan nan 1.500e+00]
[1.985e+03 nan nan nan 3.100e-01]]
拓外1:
help() 函数用于查看函数或模块用途的详细说明。
描述
help() 函数用于查看函数或模块用途的详细说明。
语法
help 语法:
参数说明:
object – 对象;
返回值
返回对象帮助信息。
import numpy
world_alcohol=numpy.genfromtxt(“world_alcohol.txt”,delimiter=",")
print(help(numpy.genfromtxt))
输出结果:
1.2numpy.array()函数的介绍
这个数组是numpy最核心的内容.比如:将list转化成ndarray矩阵的格式,
构造一维写一个中括号,构造二维写2个中括号.
import numpy
vector=numpy.array([5,10,15,20])
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
vector
array([ 5, 10, 15, 20])
matrix
array([[ 5, 10, 15],
[20, 25, 30],
[35, 40, 45]])
1.3shape函数的介绍
它的功能是查看矩阵或者数组的维数。
运用在神经网络或算法的时候,并不很清楚中间的流程做了什么事,通过一个中间结果的shape长什么样.通过.shape一方面方便于理解,另外一方面bug的时候,找了很长时间没发现问题,最好的办法是能把shape打印的东西全部打印出来.重头到尾推一遍,哪个shape有问题.没准我们就能找到这个错误.
import numpy
vector=numpy.array([5,10,15,20])
vector.shape
(4,)
import numpy
matrix=numpy.array([[5,10,15],[20,25,30],[35,40,45]])
matrix.shape
(3, 3)
2.numpy基础结构
2.1数据类型的更改
numpy.arry里面的所有元素都是同一类型,只要改了numpy.arry里面其中的一个元素.里面的元素都会变成通一个类型的转换.
比如里面其中的某个元素由整数改为小数,输出的结果全部都是小数类型.
import numpy
vector=numpy.array([5,10,15,20])#整数类型
vector
array([ 5, 10, 15, 20])
vector.dtype
dtype(‘int32’)
vector1=numpy.array([5.1,10,15,20])#改成小数类型
vector1
array([ 5.1, 10. , 15. , 20. ])
vector1.dtype
dtype(‘float64’)
vector2=numpy.array([“5”,10,15,20])#改成字符串类型
vector2
array([‘5’, ‘10’, ‘15’, ‘20’], dtype=’<U2’)
vector2.dtype
dtype(’<U2’)
通过dtype函数可以知道元素是什么类型的.
元素的类型 dtype(‘int32’)
2.2数据类型的选取
通过索引和切片的的方式对数据进行选取,跟python是一模一样的.
索引:获取数组中特定位置元素的过程
切片:获取数组元素子集的过程.
print(world_alcohol)
[[‘1986’ ‘Western Pacific’ ‘Viet Nam’ ‘Wine’ ‘0’]
[‘1986’ ‘Americas’ ‘Uruguay’ ‘Other’ ‘0.5’]
[‘1985’ ‘Africa’ “Cte d’Ivoire” ‘Wine’ ‘1.62’]
…
[‘1987’ ‘Africa’ ‘Malawi’ ‘Other’ ‘0.75’]
[‘1989’ ‘Americas’ ‘Bahamas’ ‘Wine’ ‘1.5’]
[‘1985’ ‘Africa’ ‘Malawi’ ‘Spirits’ ‘0.31’]]
获取数组的某个值
以上数据相当于是矩阵类型的方式.想选取矩阵其中的一个数据,比如最后一列中的 '0.5’以及"Cte d’Ivoire"这个数字,应该怎么选取?
uruguay_other_1986=world_alcohol[1,4]#取其中的某个值
uruguay_other_1986
‘0.5’
third_country = world_alcohol[2,2]#取其中的某个值
third_country
“Cte d’Ivoire”
获取数组的某一列
:表示所有
一维数组
vector=numpy.array([5,10,15,20])
vector
array([ 5, 10, 15, 20])
vector[0:3]
array([ 5, 10, 15])#获取第0,1,2列的数组
二维数组
matrix = numpy.array([
[5, 10, 15],
[20, 25, 30],
[35, 40, 45]
])
matrix[:,1]#获取第1列的数组
array([10, 25, 40])
matrix[:,0:2]#获取第0列,第1列的数组
array([[ 5, 10],
[20, 25],
[35, 40]])
matrix[1:3,0:2]#获取第1行/2行与第0列/第1列交叉的数组
array([[20, 25],
[35, 40]])
2.3判断数值是否在数组
对numpy .arry()无论进行什么样的操作,相当于对每个元素进行同样的操作.
一维数组
import numpy
vector=numpy.array([5,10,15,20])
vector==1 3ff7 0
array([False, True, False, False])
二维数组
当前二维矩阵是否有等于25的数.
matrix = numpy.array([
[5, 10, 15],
[20, 25, 30],
[35, 40, 45]
])
matrix==25
array([[False, False, False],
[False, True, False],
[False, False, False]])
得到布尔值的作用:
此部分的内容不是很理解,暂时先放着.
能不能将得到的布尔值当成索引呢?
可以将布尔值当成一个索引,可以将一个真实的值返回出来.
一维数组
vector=numpy.array([5,10,15,20])
equal_to_ten=(vector==10)
equal_to_ten
array([False, True, False, False])
vector(equal_to_ten)
vector[equal_to_ten]
array([10])
二维数组
matrix = numpy.array([
[5, 10, 15],
[20, 25, 30],
[35, 40, 45]
])
second_column_25=matrix[:,1]==25
second_column_25
array([False, True, False])
matrix[second_column_25,:]
array([[20, 25, 30]])
- 基于python的大数据分析实战学习笔记-pandas(数据分析包)
- python+spark2.0 + Hadoop机器学习与大数据实战——学习笔记
- python数据分析学习笔记--numpy
- 学习Python数据分析随手笔记【一】numpy数组的函数简单应用
- Python数据分析与挖掘学习笔记二:Numpy
- 学习笔记(11):Python数据分析与爬虫-Numpy
- 学习笔记(13):Python数据分析与爬虫-Numpy:ndarray的基本用法
- python数据分析与挖掘学习笔记(6)-电商网站数据分析及商品自动推荐实战与关联规则算法
- Python数据分析与挖掘实战学习笔记(一)
- Data Analysis学习笔记 --- Python数据分析入门知识
- python数据分析与挖掘学习笔记(6)-电商网站数据分析及商品自动推荐实战与关联规则算法
- python数据分析与挖掘学习笔记(7)-交通路标自动识别实战与神经网络算法
- python数据分析学习笔记-Numpy-Matplotlib-Pandas
- 2. Python脚本学习实战笔记二 分析提取数据成图
- Python数据分析与挖掘实战学习笔记
- Python数据分析与挖掘实战学习笔记(二)
- 学习Python数据分析随手笔记【二】numpy数组的属性
- 【数据分析 R语言实战】学习笔记 第八章 方差分析与R实现
- 【Numpy】python机器学习包Numpy基础知识学习
- Python数据分析与挖掘实战第五章笔记之回归分析