记录Python的numpy库的详解

1.数组 list=[1,2] 转变成np的形式,转换成对像后,就可以使用很多的np自带的方法了

list1=[1,2]
a=np.array(list1)
#a--->array([1, 2])
a.dtype
#-->dtype('int32')

2. list1=[1,2] ,list2=[3.1,4,2],a=np.array([list1,list2])

list1,list2=[1,2],[3.1,4.2]
a=np.array([list1,list2])
#a--->array([[1. , 2. ],[3.1, 4.2]])
a.dtype
#--->dtype('float64')

3.指定数据类型,比如复数形式complex

c=np.array([list1,list2],dtype=complex)
#c---->array([[1. +0.j, 2. +0.j],[3.1+0.j, 4.2+0.j]])

4.查看数据结构

c.shape
#--->(2, 2)

5.想建一个所有值都是0的两行两列的np

np.zeros([2,2])
#-->array([[0., 0.],[0., 0.]])

6.想建一个所有值都是1的两行三列的np

np.ones([2,3])
#--->array([[1., 1., 1.],[1., 1., 1.]])

7.想建一个斜角为1,其他为0的矩阵

np.eye(5)
-----------------------------
array([[1., 0., 0., 0., 0.],
       [0., 1., 0., 0., 0.],
       [0., 0., 1., 0., 0.],
       [0., 0., 0., 1., 0.],
       [0., 0., 0., 0., 1.]])

8.生成数据arange跟python的range非常的像

np.arange(2,12,3)
------------------
array([ 2,  5,  8, 11])

9.想要在横线上等分打点,比如从0到10,那么等分就是0,5,10

np.linspace(0,10,3)
-----------------------
array([ 0.,  5., 10.])

10.np的操作,实际是数组里的每个数据进行for对自己进行操作,比如基本的运行,看代码

a=np.array([[1,2,3,4],[5,6,7,8]])
-----------------------------------
#a--->array([[1, 2, 3, 4], [5, 6, 7, 8]])

#a*a
#a--->array([[ 1,  4,  9, 16],[25, 36, 49, 64]])

#a**a
#a--->array([[       1,        4,       27,      256],
       [    3125,    46656,   823543, 16777216]])

11.两个np作相乘,其实是每个元素自己相乘,上代码,从代码上可以看到是a[0][0]与b[0][0]相乘,a[0][1]与b[0][1]相乘然后返回新数组,以此类推。

a=np.array([[1,3],[2,4]])
b=np.array([[0,2],[3,5]])
#a*b--->array([[ 0,  6],[ 6, 20]])

12.矩阵相乘

a=np.array([[1,3],[2,4]])
b=np.array([[0,2],[3,5]])
np.dot(a,b)
-------------------------
array([[ 9, 17],
       [12, 24]])

13.矩阵相加

a=np.array([[1,3],[2,4]])
b=np.array([[0,2],[3,5]])
np.add(a,b)
-------------------------
array([[1, 5], [5, 9]])

 14.生成随机矩阵,生成[0.0,1.0)之间的数

a=np.random.random([2,4])
-------------------------
array([[0.37254741, 0.32470436, 0.4185625 , 0.38438104],
       [0.53985976, 0.8305917 , 0.67535554, 0.84374047]])

#总合
a.sum()
------------------------
3.634008570088778

#最大
a.max()
------------------------
0.9493550940794919

#最小
a.min()
------------------------
0.06081217802174732

15.把0到23生成6行4列,并分别沿着x轴(axis=1)与y轴(axis=0)相加,累加

b= np.arange(24).reshape(6,4)
b
-----------------------------
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]])

#沿y轴 axis=0
b.sum(axis=0)
-----------------------------
array([60, 66, 72, 78])

#沿x轴 axis=1
b.sum(axis=1)
-----------------------------
array([ 6, 22, 38, 54, 70, 86])

#沿X轴累加
b.cumsum(axis=1)
------------------------------
array([[ 0,  1,  3,  6],
       [ 4,  9, 15, 22],
       [ 8, 17, 27, 38],
       [12, 25, 39, 54],
       [16, 33, 51, 70],
       [20, 41, 63, 86]])

16.使用function的形式

def f(x,y):
    return 4*x+y
b = np.fromfunction(f,(3,2),dtype=int)
#实际上(3,2)代表的就是[[0,0],[0,1],[1,0],[1,1],[2,0],[2,1]]
那么返回值就是
array([[0, 1],
       [4, 5],
       [8, 9]])

b[:,1]-->array([[1, 5, 9]])
-------------------------------
#这个的意思就是”:“这个指的是全部行,第1列的数据全部拿出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值