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列的数据全部拿出来