python进阶-numpy基本操作

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的5
5矩阵。注意参数的位置

`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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值