numpy基本操作
1.下载numpy安装包
首先,同样的方法把numpy这个包下载一下,打开cmd,进入python下载目录的scripts目录下,输入pip install numpy
下载完了还要去pycharm里面下载这个包,方法为:file-seettings-project interpreter-右边的加号-搜索numpy-install package,下载成功就可以了。
代码变颜色了说明可以识别了,代码可以开始写了!
2.介绍数组概念
数组跟列表,列表可以存储任意类型的数据,而数组只能存储一种类型的数据。
print(array.array('i',range(10)))
结果:
如果传入一个字符串,会报错。
3.从原有列表转换为数组
a_list = list(range(10))
b = np.array(a_list)
print(type(b))
4.生成数组
a = np.zeros((4,4),dtype=int)
print(type(a))
#查看数组类型
print(a.dtype)
print(a)
因为设置了dtype的类型为int,所以是int32的类型,如果不设置,默认为float类型。a是一个4*4的数组。
np.ones也可以生成数组。
print(np.ones((4,4), dtype=float))
更多时候我们想指定一个值,而不是0或1。这时我们可以用full指定元素,指定每一个值都是3.14:
print(np.full((3,3), 3.14))
用zero_like函数也可以生成数组
前面知道,a是一个4*4的空数组,用zero_like函数把a这个数组传入np
print(np.zeros_like(a))
print(np.ones_like(a))
print(np.full_like(a,4.12,dtype=float))
5.random
与random.random()
不同,np.random.random()可以写参数
print(np.random.random((3,3)))
注意random只能有一个参数,(3,3)这是一个参数。输出结果是0到1的数字的33列表。
如果要生成0到10的55矩阵。注意参数的位置
`print(np.random.randint(0,10,(5,5)))`
6.范围取值
先看一下range的用法,输出0到10的一个列表,步长为2
print(list(range(0,10,2)))
如果是numpy,输出一个数组
print(np.arange(0,10,2))
另外一个会常用到的函数是line_space,这里输出的是0到3之间的数,是100位数字的一维数组,步长相同,都是0.03030303
print(np.linspace(0,3,100))
还有一个,np.eye,生成一个n维的单位矩阵,比如
print(np.eye(5))
7.访问数组中元素
7.1嵌套列表的元素访问
var = [[1,2,3],[4,5,6],[5,6,7]]
print(var[0][0]) #比如要访问元素1
7.2数组中元素的访问
把var转换为数组,比如访问元素5。两种访问方式是等价的
a = np.array(var)
print(a)
print(a[-1][0],a[-1,0])
7.3数组切片
访问前两行,前两列
print(a[:2,:2])
这种方式,跟上面的方式是不等价的
print(a[:2][:2]) #只有两行
8.数组属性
8.1维度
print(a.ndim)
输出结果为2,说明a这个数组是2维的
8.2 shape
每一个维度对应的大小尺寸
print(a.shape)
8.3 size
print(a.size)
输出结果为9
8.4 dtype
print(a.dtype)
输出结果为int32
8.5 itemsize
print(a.itemsize)
输出结果为4
说明一个数字占的内存是4个字节
8.6 nbytes
print(a.nbytes)
输出结果为36
9.numpy运算
numpy做运算时是对数组中的每一个数字都进行了运算!
9.1加减乘
a = np.array(range(10))
print(a)
print(a+10,'\n',a-10,'\n',a*100)
a = np.full((3,3),1.0,dtype=float)
print(a+10,'\n',np.add(a,10)) #两种方式等价
9.2 sin
b对a 中每一个数字进行了取sin
a = np.linspace(0,np.pi,5)
b = np.sin(a)
print(a,'\n',b)
numpy函数太多,不一一列举。
10.统计类型
10.1求和
print(sum([1,2,3,4,5,6]))
输出结果21
10.2数组一维求和
a = np.full(10,2.3)
print(sum(a))
23
10.3 数组多维求和
a = np.array([[1,2],[3,4]])
print(sum(a))
只对每一列求和了
10.4 np.sum求和
numpy中存在sum函数,可以对全部数字求和
print(np.sum(a))
输出10
用sum函数对行或列求和
print(np.sum(a,axis=0)) #对列求和
print(np.sum(a,axis=1)) #对行求和
10.5 max
同样可以指定行或列
print(np.max(a))
print(np.max(a, axis=1))
11 比较
a = np.array(range(10))
print(a)
print(a>3,'\n',a!=3,'\n',a==a)
print(np.all(a>-1),'\n',np.any(a>-1))
12 变形
a = np.full((2,10),1,dtype=float)
print(a)
print(a.reshape(4,5))
13 排序
l = [
[1,2,3],
[33,4,55],
[4,32,44]
]
a = np.array(l)
print(a)
print(np.sort(a))
a.sort(axis=0)
print(a)
np.sort是对行排序,axis=0可以指定对列排序
14 拼接
a = np.array([1,2,3])
b = np.array([[1,2,4],[2,4,5]]) #注意写法,array后面是括号。每一行元素用[]括起来
print(np.concatenate([a,a,a]))
print(np.concatenate([b,b,b]))
print(np.concatenate([b,b,b],axis=0)) #按照行拼
print(np.concatenate([b,b,b],axis=1)) #按照列拼
下面讲pandas