Python中Numpy库基本语法整理

一、数组基础

1.1Numpy库引入

improt numpy as np

1.2 数据类型

(1)整数型数组和浮点型数组

import numpy as np
a = np.array([1,2,3]) #当数据全部事整数时数组为整数类型
b = np.array(1.0,2,3) # 只要由浮点型数组类型为浮点型

注意numpy中数组用print打印没有逗号分割,这样可以避免和原本列表类型和小数点分开

 (2)同化  

往整数数组插入浮点数,小数部分会被截取,同理向浮点型数组插入整数,整数会变为浮点数

(3)类型转换 

由此我们可以进行整数类型数组的升级:

print(arr+0.0)  #arr为整数类型数组
print(arr*1.0)
print(arr/1)
print(arr1+arr2) #arr1或者2中有一个为浮点类型这里
#这里相加是每个元素分别相加

1.2 数组和维度

(1)一维数组和二维数组

不同维度数组,区别在于中括号数目的不同,一、二、三维数组中括号数量为1,2,3

数组的形状参数:一维:x       代表有x个元素的一维数组

                             二维:    (x,y)代表x行y列的数组

                             三维:         (x,y,z) 代表长宽高分别为x,y,z的三维数组 

注意的是这个形状参数里的括号一定不能丢

下面介绍两个方法函数: np.ones 和np.shape

np.ones :  

        括号里传入形状参数,将整个数组用1填充,返回值就是一个相应维度的数组

np.shape :

        返回一个数组的形状参数

import numpy as np
b = np.ones((3,3))
print(b)
print(b.shape)

 输出结果:

[[1. 1. 1.]
 [1. 1. 1.]
 [1. 1. 1.]]
(3, 3)

(2)数组维度的转化

import numpy as np
#一维数组升级到二维数组
a = np.arange(10)
print(a)
aa = a.reshape(2,-1) #列给-1时会自动计算列数
aaa = a.reshape(2,5)
print(aa)
print(aa.shape)
print(aaa.shape)

#二维降到一维
c = np.ones((3,4))
cc = c.reshape(-1)  #传入-1就默认化为一列
print(cc)

#二维数组的相互转化
b = np.ones((3,4)) #三行四列的数组
print(b)
bb = b.reshape((4,3)) #变为四行三列的数组
print(bb)

二、数组索引

2.1 访问数组元素

 

import numpy as np
a1 =np.arange(10)
print(a1[2])  #访问第三个元素
print(a1[-1]) #访问倒数第一个元素
a1 = a1.reshape(2,-1)
print(a1[1,2])   #访问第二行第三个元素

2.2 数组中元素的截取

(1)一维向量的截取

import numpy as np
a1 =np.arange(10)
print(a1[2:3])  #截取第三和第四个元素
print(a1[2:-2]) #从第三个到倒数第二个
print(a1[2:-2:2]) #从第三个到倒数第二个,步长为2

(2)二维矩阵的截取

import numpy as np
a1 =np.arange(1,21).reshape(4,5)
print(a1[1:3,2:4]) 
#这个截取的意思是截取第二到三行,第三到第四
print(a1[1,:]) #截取第二行
print(a1[:,2]) #截取第三列

三、数组变形

3.1 数组转置

利用方法函数 .T 即可

import numpy as np
a1 =np.arange(1,21).reshape(4,5)
print(a1)
a2 = a1.T
print(a2)

输出结果:

[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]
[[ 1  6 11 16]
 [ 2  7 12 17]
 [ 3  8 13 18]
 [ 4  9 14 19]
 [ 5 10 15 20]]

3.2 数组的翻转

主要分为两个:上下翻转( np.flipud() )和左右翻转( np.fliplr() )

import numpy as np
a1 =np.arange(1,21).reshape(4,5)
print(a1)
a2 = np.flipud(a1)
a3 = np.fliplr(a1)
print(a2)
print(a3)

输出结果 :

[[ 1  2  3  4  5]
 [ 6  7  8  9 10]
 [11 12 13 14 15]
 [16 17 18 19 20]]


[[16 17 18 19 20]
 [11 12 13 14 15]
 [ 6  7  8  9 10]
 [ 1  2  3  4  5]]


[[ 5  4  3  2  1]
 [10  9  8  7  6]
 [15 14 13 12 11]
 [20 19 18 17 16]]

3.3 向量和矩阵的拼接

import numpy as np
#向量的拼接
arr1 = np.array( [1,2,3] )
print(arr1)
arr2 = np.array( [4,5,6] )
print(arr2)
arr3 = np.concatenate( [arr1,arr2] )
print(arr3)

#矩阵的拼接
#按行拼接
arr3 = np.concatenate( [arr1,arr2] ) # 默认参数 axis=0
print(arr3)
#按列拼接
arr4 = np.concatenate( [arr1,arr2] ,axis=1 )
print(arr4)

四、数组的运算

4.1 与单个系数之间的关系

与单个系数进行运算,就是每个元素分别对其进行运算,得到的矩阵规模不变

import numpy as np
a1 = np.arange(1,21).reshape(4,5)
print(a1 *5)
print(a1 +5)
print(a1 -5)
print(a1 /5)
#.......还有// ** % 等运算符

4.2  数组与数组之间的关系

(1) 同规模数组之间的逐元素运算

import numpy as np
a1 = np.arange(1,21).reshape(4,5)
a2 = -a1
print(a1+a2)
print(a1 -a2)
print(a1*a2)
print(a1 /a2)

运算是每个相同位置的元素进行一次运算,和矩阵的乘法不同

(2)矩阵的乘积运算

运用函数 np.dot() 

当矩阵乘积中混有向量时,根据需求,其可充当行矩阵,也可充当列矩阵,
但混有向量时输出结果必为向量。
 

import numpy as np
arr1 = np.arange(5)
arr2 = np.arange(15).reshape(5,3)
print(arr1)
print(arr2)
print( np.dot(arr1,arr2) )

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值