标准安装的Python的中用列表(名单)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显然比较浪费内存和CPU计算时间。
NumPy的诞生弥补了这些不足,NumPy提供了两种基本的对象:ndarray(N维数组对象)是存储单一数据类型的多维数组,ufunc(通用函数)是能够对数组的每个元素进行处理的函数 .NumPy内置的许多ufunc函数都在C语言级别实现的,因此它们的计算速度非常快。
把数据转换成矩阵的形式,用numpy的封装函数对矩阵进行操作。
一、用numpy读写数据文件
example=open('drink.txt','w+') ##写一个数据文件drink.txt
example.write('Year,WHO_Region,Country,Beverage Types,Display Value\
\n1986,Western Pacific,Viet Nam,Wine,0\
\n1986,Americas,Uruguay,Other,0.5\
\n1985,Africa,Cte d\'Ivoire,Wine,1.62')
example.close()
example = open('drink.txt',"r+")
print(example.read())
Year,WHO_Region,Country,Beverage Types,Display Value
1986,Western Pacific,Viet Nam,Wine,0
1986,Americas,Uruguay,Other,0.5
1985,Africa,Cte d'Ivoire,Wine,1.62
import numpy
drink = numpy.genfromtxt('drink.txt',delimiter=',')
##genfromtxt读取数据集,存成array格式;delimiter是分割之外,表示数组的分割方式
print(type(drink))
<class 'numpy.ndarray'>
二、用numpy创建数组
1、人气指数方法创建向量数组,重塑改变数组维度
import numpy as np
A= np.arange(15)#arange创建数组
print(A)
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14]
a = A.reshape(3,5)#reshape定义数组维度大小,x*y,保证与数组的数量对等
print(a)
[[ 0 1 2 3 4]
[ 5 6 7 8 9]
[10 11 12 13 14]]
ash = a.shape
print(ash)
print(a.ndim)#查看数组是几维的
print(a.dtype.name)#dtype.name查看数组内元素数据类型
print(a.size)#查看数组里有多少元素
(3, 5)
2
int64
15
2、零方法,创建全0数组,注意数组维度是括号
nz = np.zeros((4))
print(nz)
print(type(nz[0]))
print(' ')
nzn=nz.astype(int)
print(nzn)
print(type(nzn[0]))
[ 0. 0. 0. 0.]
<class 'numpy.float64'>
[0 0 0 0]
<class 'numpy.int64'>
3、