2个0的一维数组
np.zeros((2))
# array([0., 0.])
6个0的二维数组.
np.zeros((2, 3)) #
# array([[0., 0., 0.],
# [0., 0., 0.]])
24个1的三维数组.
np.ones((2, 3, 4)) #
#array([[[1., 1., 1., 1.],
# [1., 1., 1., 1.],
# [1., 1., 1., 1.]],
#
# [[1., 1., 1., 1.],
# [1., 1., 1., 1.],
# [1., 1., 1., 1.]]])
创建初始值随机的一维数组
np.empty((3)) #
# array([7.74860419e-304, 7.74860419e-304, 7.74860419e-304])
创建3 × 3的单位矩阵.
np.eye(3) #
#array([[1., 0., 0.],
# [0., 1., 0.],
# [0., 0., 1.]])
二维数组.
np.array([[1,2], [3,4]]) #
# array([[1, 2],
# [3, 4]])
一维布尔数组.
np.array([1,0], dtype=np.bool) #
# array([ True, False])
三维数组
np.array([[[1,2], [3,4]], [[5,6],[7,8]]]) # .
# array([[[1, 2],
# [3, 4]],
#
# [[5, 6],
# [7, 8]]])
数值全部为7的2乘3二维数组.
np.full((2,3), 7)#
# array([[7, 7, 7],
3 [7, 7, 7]])
从0到3的一维数组
np.arange(4) #.
# array([0, 1, 2, 3])
从5(包含)到25(不包含),步幅为5的一维数组.
np.arange(5, 25, 5) #
# array([ 5, 10, 15, 20])
创建从0(包含)到9(包含),长度为10的等差数列.
np.linspace(0, 9, 10) #
# array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])
从区间[0.0,1.0)中随机抽取6个数,填入2乘3的数组中.
np.random.random((2, 3))#
# array([[0.26094114, 0.33261952, 0.8888425 ],
# [0.63739788, 0.44335024, 0.5220761 ]])
创建长度为10的从0到2π余弦函数值的等差数列
np.cos(np.linspace(0, 2*np.pi, 10))
#
# array([ 1. , 0.76604444, 0.17364818, -0.5 , -0.93969262,
# -0.93969262, -0.5 , 0.17364818, 0.76604444, 1. ])
数组的维度.
a.shape
# (10,)
数组的长度.
len(a)
# 10
数组维度的大小
a.ndim
# 1
数组中元素的个数
a.size
# 10
数组数据的类型
a.dtype
# 'float64'
数组数据类型的名称
a.dtype.name
将数据类型转换为其它类型.
a.astype('int')
a
# array([ 1. , 0.76604444, 0.17364818, -0.5 , -0.93969262, -0.93969262, -0.5 , 0.17364818, 0.76604444, 1. ])
数据类型
np.int64 | 64位整数型.
np.float32 | 标准双精度浮点型.
np.complex | 由128位浮点代表的复数.
np.bool | 布尔型.
np.object | Python中object类型.
np.nan | NA值,为浮点型
以npz格式将数组保存到本地
np.save(‘my_arr’, arr)
以文本格式将数组到本地
np.savetxt(‘my_arr.txt’, arr)
读取本地NumPy数组文件
np.load(‘my_arr.npy’)
读取本地文本数组文件
np.loadtxt(‘my_arr.txt’)
将csv文件转换成NumPy数组
np.genfromtxt(‘file.csv’,delimiter=‘,’)
arr = np.arange(0,100).reshape(20,5)
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, 24],
[25, 26, 27, 28, 29],
[30, 31, 32, 33, 34],
[35, 36, 37, 38, 39],
[40, 41, 42, 43, 44],
[45, 46, 47, 48, 49],
[50, 51, 52, 53, 54],
[55, 56, 57, 58, 59],
[60, 61, 62, 63, 64],
[65, 66, 67, 68, 69],
[70, 71, 72, 73, 74],
[75, 76, 77, 78, 79],
[80, 81, 82, 83, 84],
[85, 86, 87, 88, 89],
[90, 91, 92, 93, 94],
[95, 96, 97, 98, 99]])
提取第5个(行)的元素
arr[4]
# array([20, 21, 22, 23, 24])
提取第2行第1列的元素
arr[1,0]
# 5
提取位于第一行第二列和第三行第四列的两个元素
arr[[0,2],[1,3]]
# array([ 1, 13])
提取前5行的元素
arr[:5]
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, 24]])
提取第1行到第5行元素
arr[0:5]
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, 24]])
提取第1,3,5,7,9行元素
arr[0:10:2]
array([[ 0, 1, 2, 3, 4],
[10, 11, 12, 13, 14],
[20, 21, 22, 23, 24],
[30, 31, 32, 33, 34],
[40, 41, 42, 43, 44]])
反序数组
arr[::-1]
array([[95, 96, 97, 98, 99],
[90, 91, 92, 93, 94],
[85, 86, 87, 88, 89],
[80, 81, 82, 83, 84],
[75, 76, 77, 78, 79],
[70, 71, 72, 73, 74],
[65, 66, 67, 68, 69],
[60, 61, 62, 63, 64],
[55, 56, 57, 58, 59],
[50, 51, 52, 53, 54],
[45, 46, 47, 48, 49],
[40, 41, 42, 43, 44],
[35, 36, 37, 38, 39],
[30, 31, 32, 33, 34],
[25, 26, 27, 28, 29],
[20, 21, 22, 23, 24],
[15, 16, 17, 18, 19],
[10, 11, 12, 13, 14],
[ 5, 6, 7, 8, 9],
[ 0, 1, 2, 3, 4]])
提取前2行的第3列的元素
arr[0:2,2]
# array([2, 7])
提取所有行和所有列
arr[:,:]
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, 24],
[25, 26, 27, 28, 29],
[30, 31, 32, 33, 34],
[35, 36, 37, 38, 39],
[40, 41, 42, 43, 44],
[45, 46, 47, 48, 49],
[50, 51, 52, 53, 54],
[55, 56, 57, 58, 59],
[60, 61, 62, 63, 64],
[65, 66, 67, 68, 69],
[70, 71, 72, 73, 74],
[75, 76, 77, 78, 79],
[80, 81, 82, 83, 84],
[85, 86, 87, 88, 89],
[90, 91, 92, 93, 94],
[95, 96, 97, 98, 99]])
提取第5行的元素
arr[4,:]
# array([20, 21, 22, 23, 24])
提取所有小于50的元素
arr[arr<50]
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, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49])
arr = np.array([[1,2],[3,4]])
# array([[1, 2],[3, 4]])
数组转置
arr.T
# array([[1, 3],[2, 4]])
扁平化数组
arr.ravel()
# array([1, 2, 3, 4])
重塑数组, 元素个数需保持一致
arr.reshape(4,1)
array([[1],
[2],
[3],
[4]])
重塑原数组,元素个数可不同
np.resize(arr,(2, 3))
array([[1, 2, 3],
[4, 1, 2]])
扁平化后插入新数组[[5,6]],若指定axis参数,则会按指定方向插入
np.append(arr,[[5,6]])
# array([1, 2, 3, 4, 5, 6])
指定axis参数
np.append(arr,3,[[5,6]])
# array([1, 2, 3, 5, 6, 4])
扁平化后按索引删除元素,若指定axis参数则会按维度方向删除
np.delete(arr,1)
# array([1, 3, 4])
按指定维度方向(需已存在)合并多个数组
np.concatenate((arr,arr),axis=1)
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
按水平方向合并多个数组
np.hstack((arr,arr))
array([[1, 2, 1, 2],
[3, 4, 3, 4]])
按竖直方向合并多个数组
np.vstack((arr,arr))
array([[1, 2],
[3, 4],
[1, 2],
[3, 4]])
按第0维度方向将数组切成2份
np.split(arr,2)
[array([[1, 2]]), array([[3, 4]])]
按第1维度方向将数组切成2份
np.split(arr,2,1)
[array([[1],
[3]]),
array([[2],
[4]])]
将数组转换成列表
arr.tolist()
[[1, 2], [3, 4]]
np.nan is np.nan
# True
np.nan == np.nan
# False
a = np.array([1,2])
b=np.array([2,3])
逐元素比较,返回等维度布尔数组
a == b
# array([False, False])
逐元素比较,返回等维度布尔数组
a<2
# array([ True, False])
逐元素进行加、减、乘、除运算
a+b
# array([3, 5])
a-b
array([-1, -1])
a*b
# array([2, 6])
a/b
# array([0.5 , 0.66666667])
数量积运算
a.dot(b)
# 8
最大
np.max(a)
# 2
最小
np.min(a)
# 1
均值
np.mean(a)
# 1.5
标准差
np.std(a)
# 0.5
按指定维度方向求最大值
a.max(axis=0)
# 2
按指定维度方向对数组进行升序排列
a.sort(axis=0)
# array([1, 2])
深拷贝数组
a.copy() # array([1, 2])
浅拷贝数组
np.copy(a) # array([1, 2])
创建数组的view
a.view() # array([1, 2])
数组间整体比较,返回单个布尔值
np.array_equal(a,a)
# True
做幂
np.exp(a)
# array([2.71828183, 7.3890561 ])
开平方
np.sqrt(a)
# array([1. , 1.41421356])
正弦
np.sin(a)
# array([0.84147098, 0.90929743])
自然对数运算
np.log(a)
# array([0. , 0.69314718])