Numpy常用方法使用大全(超详细)
2019-07-21 23:08
155 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_41799019/article/details/96770684
关于Python数据分析在数学建模中的更多相关应用:Python数据分析在数学建模中的应用汇总(持续更新中!)
文章目录
- 1、导入Numpy
- 2、向量相加
- 3、Numpy数组
- 4、Numpy数据类型
- 5、数据类型转换
- 6、创建自定义数据类型
- 7、数组与标量运算
- 8、一维数组的索引和切片
- 9、多维数组的索引和切片
- 10、布尔型索引
- 11、数组转置
- 12、改变数组的维度
- 13、组合数组
- 14、组合数组
- 15、数组的分割
- 16、数组的转换
- 17、利用数组进行数据处理
- 18、将条件逻辑表达为数组运算
- 19、数学与统计方法
- 20、用于布尔型数组的方法
- 21、数组排序
- 22、唯一化以及其他的逻辑集合
- 23、线性代数的运用
- 24、随机数的生成
关于Python数据分析在数学建模中的更多相关应用:Python数据分析在数学建模中的应用汇总(持续更新中!)
1、导入Numpy
import numpy as np
2、向量相加
#向量相加-numpy def numpysum(n): a = np.arange(n)**2 b = np.arange(n)**3 c = a + b return c print(numpysum(20))
3、Numpy数组
#numpy数组 a = np.arange(5) print(a.dtype)#查看类型 print(a.shape)#查看维度 #创建多维数组 m = np.array([np.arange(2),np.arange(2)]) print(m) print(m.shape)#查看维度 print(m.dtype)#查看类型 #创建0数组或者空数组 print(np.zeros(10))#创建全是0的数组 print(np.zeros((3,6)))#创建全是0的多维数组 print(np.empty((2,3,2)))#创建随机值的数组 print(np.arange(15))#创建普通数组 #选取数组元素 a = np.array([[1,2],[3,4]])#生成二维数组 print(a) print(a[0,0])#选取0行0列的元素 print(a[0,1])#选取0行0列的元素 print(a[1,0])#选取1行0列的元素 print(a[1,1])#选取1行1列的元素
4、Numpy数据类型
#numpy数据类型 print(np.float64(42))#64位浮点数 print(np.int8(42.0))#8位整数 print(np.bool(42))#布尔型 print(np.float(True)) print(np.float(False))
5、数据类型转换
arr = np.array([1,2,3,4,5])#生成一维数组 print(arr.dtype)#查看类型 float_arr = arr.astype(np.float64)#转换为64位浮点数类型 print(float_arr.dtype)#重新查看数据类型 arr = np.array([3.7,-1.2,-2.6,0.5,12.9,10.11]) print(arr) print(arr.astype(np.int32))#将浮点数转换为32位整数类型
6、创建自定义数据类型
#创建自定义数据类型 t = np.dtype([('name',np.str_,40),('numitems',np.int32),('price',np.float32)]) print(t) itemz = np.array([('Meaning of life',42,3.14),('Butter',13,2.72)],dtype=t) print(itemz)
7、数组与标量运算
#数组与标量的运算 arr = np.array([[1,2,3],[4,5,6]]) print(arr)#输出数组 print(arr*arr)#数组平方 print(arr-arr)#数组相减 print(1/arr)#数组倒数 print(arr**0.5)#数组开根号
8、一维数组的索引和切片
#一维数组的索引和切片 a=np.arange(9); print(a[:7:2])#选取(0,6),隔两个选取 print(a[3:7])#选取(3,6) print(a[::-1])#从末尾到头逐一选取 s = slice(3,7,2)#另一种切片方式 print(a[s]) s=slice(None, None, -1)#从末尾到头逐一选取 print(a[s])
9、多维数组的索引和切片
#多维数组的索引和切片 b= np.arange(24).reshape(2,3,4)#创建一个三维数组 print(b.shape)#查看维度 print(b) print(b[0,0,0])#获得0层0行0列的数据 print(b[:,0,0])#获得每一层0行0列的数据 print(b[0])#获得0层的数据 print(b[0,:,:])#获得0层的数据 print(b[0,...])#获得0层的数据 print(b[0,1])#获得0层1行的数据 print(b[0,1,::2])#获得0层1行每一列的数据,逐2选取
10、布尔型索引
#布尔型索引 names=np.array(['Bob','Joe','Will','Bob','Will','Joe','Joe'])#布尔型数组 data=np.random.randn(7,4)#生成二维的正态分布数据 print(names) print(data) print(names == 'Bob')#查看names数组中的每一个元素是否为Bob,返回一个布尔型数组 print(data[names == 'Bob'])#显示数组中为True的行 print(data[names == 'Bob',2:]) print(names != 'Bob')#查看names数组中的每一个元素是否为Bob,返回一个布尔型数组 mask = (names == 'Bob') | (names == 'Will')#查看names数组中的每一个元素是否为Bob或Will,返回一个布尔型数组 print(mask) print(data[mask]) data[data < 0] = 0#将数组中小于0的数修改为0 print(data) data[names != 'Joe'] = 7#将数组中对应Joe的数据修改为7 print(data)
11、数组转置
#数组转置 arr = np.arange(15).reshape((3,5)) print(arr) print(arr.T)#数组转置
12、改变数组的维度
#改变数组的维度 arr = np.arange(20).reshape((4,5))#将数组变为4*5的数组 print(arr) print(arr.flatten())#将数组变回一维数组 print(arr.ravel())#将数组变回一位数组 arr.shape = (2,5,2)#将数组变为2*5*2的数组 print(arr)
13、组合数组
#组合数组 a = np.arange(9).reshape(3,3) b = 2*a #水平组合 print(np.hstack((a,b))) print(np.concatenate((a,b),axis=1)) #垂直组合 print(np.vstack((a,b))) print(np.concatenate((a,b),axis=0)) #深度组合 print(np.dstack((a,b)))
14、组合数组
#组合数组 a = np.arange(9).reshape(3,3) b = 2*a #水平组合 print(np.hstack((a,b))) print(np.concatenate((a,b),axis=1)) #垂直组合 print(np.vstack((a,b))) print(np.concatenate((a,b),axis=0)) #深度组合 print(np.dstack((a,b))) oned = np.arange(2) twice_oned =2*oned#数组*2 print(np.column_stack((oned,twice_oned)))#按列组合数组 print(np.row_stack((oned,twice_oned)))#按行组合数组
15、数组的分割
#数组的分割 a = np.arange(9).reshape(3,3) print(np.hsplit(a,3))#水平分割 print(np.split(a,3,axis=1))#axis=1代表水平分割 print(np.vsplit(a,3))#垂直分割 print(np.split(a,3,axis=0))#axis=0代表垂直分割
16、数组的转换
#数组的转换 b=np.arange(24).reshape(2,12)#创建一个2*12的数组 print(b.ndim)#二维数组的维数 print(b.size)#数组中元素的总个数 b = np.array([1+1j,3+2j])#创建一个复数数组 print(b.real)#实部 print(b.imag)#虚部 b = np.array([1+1j,2+3j]) print(b.tolist())#转换为python的列表 print(b.astype(int))#转换为整数类型 print(b.astype(complex))#转换为复数类型
17、利用数组进行数据处理
points = np.arange(-5,5,0.01) xs, ys = np.meshgrid(points,points) #分别进行赋值 print(xs) print(ys) import matplotlib.pyplot as plt#导入一个画图库 z=np.sqrt(xs**2+ys**2) print(z) plt.imshow(z,cmap=plt.cm.gray);plt.colorbar() plt.title("Image plot of gray") plt.draw()
18、将条件逻辑表达为数组运算
xarr=np.array([1.1,1.2,1.3,1.4,1.5]) yarr=np.array([2.1,2.2,2.3,2.4,2.5]) cond=np.array([True,False,True,True,False]) result=np.where(cond,xarr,yarr) #如果是True就选择xarr,如果是False就选择yarr print(result) arr=randn(4,4) result=np.where(arr>0,2,-2) #如果大于0就选择2,如果小于0就是-2 print(result) result=np.where(arr>0,2,arr) print(result)#如果为False就保持不变
19、数学与统计方法
#数学与统计方法 arr=randn(5,4) print(arr.mean())#求均值 print(arr.sum()) #求和 arr=np.array([[0,1,2],[3,4,5],[6,7,8]]) print(arr) print(arr.cumsum(1))#计算累计和 0的话行累加,1的话列累加 print(arr.cumprod(1))#计算累计积
20、用于布尔型数组的方法
#用于布尔型数组的方法 arr=randn(100) print((arr > 0).sum()) #正值的数量 bools = np.array([False,False,True,False]) print(bools.any()) #是否存在一个为真 print(bools.all()) #是否都是真的
21、数组排序
#数组排序 arr=randn(8) arr.sort()#数组进行排序 print(arr) arr=randn(5,3) arr.sort(1)#按照行进行排序 print(arr)
22、唯一化以及其他的逻辑集合
names=np.array(['Bob','Joe','Will','Bob','Joe']) print(np.unique(names)) #返回唯一一个元素 ints = np.array([3,3,2,1,4,5,1,3,2]) print(np.unique(ints)) values=np.array([6,0,0,3,2,5,6]) print(np.in1d(values,[2,3,6])) #一个数组中的元素是否在另一个数组里面
23、线性代数的运用
x=np.array([[1,2,3],[4,5,6]]) y=np.array([[6,23],[-1,7],[8,9]]) print(x.dot(y)) #矩阵相乘
24、随机数的生成
#随机数生成 samples = np.random.normal(size=(4,4)) #4*4的随机数服从正态分布 print(samples)
相关文章推荐
- Linux常用命令及使用方法大全
- java面试Linux常用命令使用方法大全
- Doctrine常用方法大全详细说明【原创】
- Google常用搜索技巧及"index of"详细使用方法
- 转载:使用Pandas&NumPy进行数据清洗的6大常用方法
- SQLite3使用方法大全(一)之常用命令
- html常用标签大全--附使用方法
- 4000 C++使用Mysql的详细步骤及各个常用方法的代码演示:select,insert,update,delete
- [置顶] Google常用搜索技巧及"index of"详细使用方法
- SpringMVC常用注解:@Controller注解的详细使用方法
- [置顶] Numpy:关于Numpy中一些使用方法的详细解释——Jason niu
- PythonStock(13):使用stockstats计算股票中的16个常用指标方法大全
- C++使用Mysql的详细步骤及各个常用方法的代码演示:select,insert,update,delete
- NUnit详细使用方法
- ASP.NET公有六种验证控件,本文详细介绍了看这些控件的使用方法。
- 深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
- NUnit详细使用方法
- NUnit2.0详细使用方法 (转)
- NUnit2.0详细使用方法