您的位置:首页 > 编程语言 > Python开发

7068-1.Python数据分析:NumPy的基本语法

2018-03-20 11:13 525 查看
本章对于NumPy的基本用法做简单的介绍:
NumPy是Python自带的高性能科学计算和数据分析的基础包
导入该包:import numpy as np创建N维数组对象ndarray:data=np.array([0.945,-0.246,0.728,0.557,-0.489,0.916])该对象是一个大数据集,可以作为整体进行运算:
例如:print(data*10)
print(data+data)
print(data.shape)#一个表示各维大小的元组
print(data.dtype)#表示数据类型,这里是float64输出如下:
[ 9.45 -2.46 7.28 5.57 -4.89 9.16]
[ 1.89 -0.492 1.456 1.114 -0.978 1.832]
(6,)
float64

创建ndarry的方法:p00=np.zeros(10)#创建一个全0,长度为10的数组
p01=np.zeros((3,4))#三行四列的全零数组
p1=np.ones(10)#创建一个全1,长度为10的数组
pr=np.arange(15)#创建等差数列数组
pE=np.eye(7)#创建7*7的单位矩阵(identity是同样的用法)
pe=np.empty((3,4))#创建新数组,只分配内存空间但不填充任何值输出如下:
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]),
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]]),
array([ 1., 1., 1., 1., 1., 1., 1., 1., 1., 1.]),
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]),
array([[ 1., 0., 0., 0., 0., 0., 0.],
[ 0., 1., 0., 0., 0., 0., 0.],
[ 0., 0., 1., 0., 0., 0., 0.],
[ 0., 0., 0., 1., 0., 0., 0.],
[ 0., 0., 0., 0., 1., 0., 0.],
[ 0., 0., 0., 0., 0., 1., 0.],
[ 0., 0., 0., 0., 0., 0., 1.]]),
array([[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.],
[ 0., 0., 0., 0.]])

创建二维数组:arr=np.array([[1,2,3],[4,5,6]])#创建二维数组
print(arr*arr)输出:
[[ 1 4 9] [16 25 36]]

可以看到,二维数组运算是相同的
访问二维数组时,arr[0][2]等效于arr[0,2],同样arr[1]代表[4,5,6]一个整体
对于数据处理:data1=np.arange(10)
print(data1[4:9])输出:
[4 5 6 7 8]


数据统一赋值:data1[4:9]=0
print(data1)输出:[0 1 2 3 0 0 0 0 0 9]
切片索引:我们不妨把一些常见的语句带进来实验一下,看看能输出什么结果a=([[1,2,3],[4,5,6],[7,8,9]])
data2=np.array(a)#创建ndarray
print(data2.shape)#输出(3,3)
print(data2[:2])#输出[[1 2 3] [4 5 6]]
“:”表示前面或后面全部覆盖,即选取整个轴,Python从0开始编码,所以这里是选取第0行到第2行(不包含第2行)的所有数据
print(data2[:2,1:])#输出[[2 3] [5 6]],选取开始到第2行(不包含),第1列到最后的所有数据
print(data2[1,:2])#输出[4 5],选取第1行,开始到第2列(不包含)的所有数据
print(data2[2,:1])#输出[7],选取第2行,开始到第一列(不包含)的所有数据
print(data2[:,:1])#输出[[1] [4] [7]],选取所有行,开始到第一列(不包含)的所有数据
布尔型索引:letter=np.array(['A','B','A','C','B','B','C'])
data=np.random.randn(7,2)#生成随机数
print(data)

print(letter=='B')
print(data[letter=='B'])输出:



此操作可以实现字符与布尔数组的匹配
(使用布尔数组选取多个应用“|”和“&”,“and”和‘or’在布尔型数组中无效)
统一筛选与赋值:data[data<0]=0
print(data)

data[letter!='B']=-1
print(data)


其他常用操作:data3=np.dot(data2.T,data2)#计算矩阵内积

data4=np.arange(16).reshape((2,2,4))#生成一个三维数组这个数组长这样:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: