Python数据分析:numpy库详细教程
一、基本介绍
1. 什么是numpy
一个在Python中做科学计算的基础库,重在数值计算,也是大部分Python科学计算库的基础库,多用于在大型、多维数组上执行数值运算。
numpy:处理数值型数据;快速、方便、科学计算的基础库
2. 创建数组
(1) 创建数组
# 使用numpy生成数组
import numpy as np
a=np.array([1,2,3,4,5])
b=np.array(range(1,6))
c=np.arange(1,6)
# 上面a,b,c内容相同,注意arange和range的区别
(2) 数组类别
a=np.array([1,2,3,4,5])
print=(type(a))
>>>numpy.ndarray
(3) 数据类型
a.dtype
>>>dtype('int64')
3. 数据类型的操作
(1) 指定创建的数组的数据类型
a=np.array([1,0,1,0],dtype=np.bool) #或者使用dtype='float64'
a
>>>array([True,False,True,False],dtype=bool)
(2) 修改数组的数据类型
a.astype('i1') #或者使用a.astype(np.int8)
>>>array([1,0,1,0],dtype=bool)
(3) 修改浮点型的小数位数
import random
b=np.array([random.random() for i in range(10)]) # 生成生成10个[0,1]的8位随机小数
print(b)
print(b.dtype)
>>>[0.98313373 0.91107927 0.89802009 0.33505108 0.80601206 0.44612311 0.88800664 0.12313158 0.26119645 0.0022805 ]
>>>float64
b1=np.round(b,2) # 保留2位小数
print(b1)
>>>[0.8 0.58 0.51 0.69 0.23 0.02 0.86 0.68 0.17 0.6 ]
# 也可以用下面的方法
'%.2f' % random.random()
>>>'0.72'
二、 数组计算
1. 数组的形状
(1) 查看数组的形状
数组的形状:几行几列
t1=np.arange(12)
t1.shape
>>>(12,)
t2=np.array([[1,2,3],[4,5,6]])
t2.shape
>>>(2, 3)
t3=np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]]) # 三维数组
t3.shape
>>>(2, 2, 3)
(2) 修改数据的形状
t4=np.arange(12)
>>>
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
t4.reshape(3,4) # 修改形状
>>>array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
t5=np.arange(24).reshape(2,3,4) # 2块,3行4列
>>>array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
t5.reshape(4,6) # 将t5转成二维数组
>>>array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
t5.reshape(24,) # 将t5转成一维数组
>>>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
t5.reshape(24,1) # 将t5转成一维数组
>>>array([[ 0],
[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10],
[11],
[12],
[13],
[14],
[15],
[16],
[17],
[18],
[19],
[20],
[21],
[22],
[23]])
t5.reshape(1,24) # 将t5转成一维数组
>>>array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]])
t5=t5.reshape(4,6) # 将t5转成二维数组
>>>array([[ 0, 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10, 11],
[12, 13, 14, 15, 16, 17],
[18, 19, 20, 21, 22, 23]])
# 方法一:转成一维数组 reshape
t6=t5.reshape((t5.shape[0]*t5.shape[1],))
>>>array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23])
# 方法二:转成一维数组 flatten
t5.flatten()
>>>array([ 0