python学习——numpy基础操作

1 创建数组

在这里插入图片描述

import numpy as np		#以后numpy简写为np
print(np.array([1,2,3])) 	#>>[1 2 3]
print(np.arange(1,9,2))  	#>>[1 3 5 7]
print(np.linspace(1,10,4)) #>>[  1.   4.   7.  10.]
print(np.random.randint(10,20,[2,3]))#2行3列
#>>[[12 19 12]
#>> [19 13 10]]
print(np.random.randint(10,20,5)) #>>[12 19 19 10 13]
a = np.zeros(3)
print(a)			#>>[ 0.  0.  0.]
print(list(a))		#>>[0.0, 0.0, 0.0]
a = np.zeros((2,3),dtype=int)  #创建一个2行3列的元素都是整数0的数组

2 数组常用属性和函数

在这里插入图片描述

import numpy as np
b = np.array([i for i in range(12)])
#b是[ 0  1  2  3  4  5  6  7  8  9 10 11]
a = b.reshape((3,4)) 	#转换成3行4列的数组,b不变
print(len(a))		#>>3	a有3行
print(a.size)		#>>12	a的元素个数是12
print(a.ndim)		#>>2	a是2维的
print(a.shape)	#>>(3, 4)	a是3行4列
print(a.dtype)	#>>int32	a的元素类型是32位的整数
L = a.tolist()	#转换成列表,a不变
print(L)		
#>>[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]]
b = a.flatten() 	#转换成一维数组
print(b)        	#>>[ 0  1  2  3  4  5  6  7  8  9 10 11]

3 数组元素增删

在这里插入图片描述

numpy数组一旦生成,元素就不能增删。上面函数返回一个新的数组。

import numpy as np		
a = np.array((1,2,3))	#a是[1 2 3]
b = np.append(a,10)    	#a不会发生变化
print(b)    			#>>[ 1  2  3 10]
print(np.append(a,[10,20])) 	#>>[ 1  2  3 10 20]
c = np.zeros((2,3),dtype=int) 	#c是2行3列的全0数组
print(np.append(a,c)) 	#>>[1 2 3 0 0 0 0 0 0]
print(np.concatenate((a,[10,20],a)))  
#>>[ 1  2  3 10 20  1  2  3]
In [10]: print(np.concatenate((c,np.array([[10,20,30]]))))
    ...:
[[ 0  0  0]
 [ 0  0  0]
 [10 20 30]]
 
In [12]: np.concatenate((c,np.array([[1,2],[10,20]])),axis=1)
Out[12]:
array([[ 0,  0,  0,  1,  2],
       [ 0,  0,  0, 10, 20]])
#axis=0可以看做直接把b矩阵接在a的下面,即按行进行合并),axis=1可以看做将矩阵连接在a的右边,即按列进行合并
import numpy as np
a = np.array((1,2,3,4))
b = np.delete(a,1) 	#删除a中下标为1的元素,a不会改变
print(b)            	#>>[1 3 4]
b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(np.delete(b,1,axis=0))    	#删除b的第1行得新数组
#>>[[ 1  2  3  4]
#>> [ 9 10 11 12]]
print(np.delete(b,1,axis=1))    	#删除b的第1列得新数组
print(np.delete(b,[1,2],axis=0)) 	#删除b的第1行和第2行得新数组
print(np.delete(b,[1,3],axis=1))	#删除b的第1列和第3列得新数组

4 元素查找

import numpy as np
a = np.array((1,2,3,5,3,4))
pos = np.argwhere(a==3) 	#pos是[[2] [4]]
a = np.array([[1,2,3],[4,5,2]])
print(2 in a) 		#>>True
pos = np.argwhere(a==2) 	#pos是[[0 1] [1 2]]
b = a[a>2]			#抽取a中大于2的元素形成一个一维数组
print(b) 			#>>[3 4 5]
a[a > 2] = -1 		#a变成[[ 1  2 -1] [-1 -1  2]]

5 数学运算

import numpy as np
a = np.array((1,2,3,4))
b = a + 1
print(b)	#>>[2 3 4 5]
print(a*b)	#>>[ 2  6 12 20] 	a,b对应元素相乘
print(a+b)	#>>[3 5 7 9] 	a,b对应元素相加
c = np.sqrt(a*10)  #a*10是[10 20 30 40]
print(c) #>>[ 3.16227766  4.47213595  5.47722558  6.32455532

6 数组切片

numpy数组的切片是“视图”,是原数组的一部分,而非一部分的拷贝
切片是左闭右开[,)

import numpy as np
a = np.arange(8)	#a是[0 1 2 3 4 5 6 7]
b = a[3:6]		#注意,b是a的一部分
print(b)  		#>>[3 4 5]
c = np.copy(a[3:6])	#c是a的一部分的拷贝
b[0] = 100		#会修改a
print(a) 		#>>[  0   1   2 100   4   5   6   7]
print(c) 		#>>[3 4 5]  c不受b影响 
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]) 
b = a[1:3,1:4] 	#b是>>[[ 6  7 8] [10 11 12]]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值