这篇文章主要介绍Python中如何导入Numpy库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
导入Numpy库
为了书写方便,一般用别名np代替Numpy库(如果安装的是anaconda,Numpy库是自带的)
a = np.array([[1,2,3,4],[5,6,7,8]]) print(a)
常用函数
导入Numpy库之后,可以用Numpy生成数组。使用array()函数可以生成一个数组,与列表的区别是没有逗号:
a = np.array([[1,2,3,4],[5,6,7,8]]) print(a)
上方的代码将生成一个二维数组,结果如图:
如果想改变数组的维度,获取4行2列数组,可以通过reshape()方法实现:
b = a.reshape((4,-1)) print(b)
reshape()中的参数(4,-1)表示将数组转换为4*X的新数组,X等于数组a中元素个数的1/4。参数-1是一种“懒人”方法,表示由Python通过行参数4自动计算出列数。
此外,默认是按照行优先改变数据维度,也可以设置参数order="F",按照列优先改变数据维度:
c = a.reshape((4,2), order="F") print(c)
虽然数组的维度没有改变,但是元素对应的位置已经不同了。
想要提取数组中的某些元素,可以使用切片的方式来提取。如提取第2行中的5和7:
d = c[1,:] print(d)
获取结果如图:
当然,也可以使用切片的方法修改数组中相应位置的数值,比如将数组c中第二列的中间两个数变为0,可以这样操作:
c[1:3,1] = 0 print(c)
可以看出,逗号左边表示行号,右边表示列号,由此就能任意截选出我们需要的数据。
数组不仅可以是二维的,也可以是多维的。下面生成一个三维数组e:
e = np.array([c,c*2]) print(e)
数组e是一个2*2*4的数组,也就是说由2个2*4的矩阵构成。
Numpy中的linspace()函数可以在指定的两个数之间生成固定数量的等间距(步长)数组,如:
f = np.linspace(start=1,stop=12,num=5) print(f)
上方代码生成一个从1到12的5个等间距的数组。
如果想以指定的步长来生成一个向量,可以使用arange()方法,如从1开始,步长为3,生成小于等于12的向量:
g = np.arange(1,12,3) print(g)
结果:[1 4 7 10]
使用
ones()函数可以生成全1数组,如生成一个2*3的全1数组:
h = np.ones((2,3)) print(h)
使用zeros()函数可以生成全0数组,如生成一个2*3的全0数组:
i = np.zeros((2,3)) print(i)
若想生成单位数组(对角线为1,其余全是0),可以使用eye()函数,如生成一个3*3的单位数组:
j = np.eye(3) print(j)
当然,也可以指定对角线的元素取值:
k = np.diag(np.arange(1,13,4)) print(k)
使用diag()函数可以得到一个数组的对角线元素,也可以获取对角线的值:
l =np.diag(np.arange(1,26,3).reshape((3,3))) print(l)
结果:[ 1 13 25 ]
Numpy中的Random模块是用来生成随机数的有力工具,通过seek()方法能指定随机数种子,保证生成的随机数是可重复的。如要生成一个可重复的3*3随机数组,可以用如下方法:
np.random.seed(2) m = np.random.randn(3, 3) print(m)
当然,一些常用的统计函数也能实现,如均值用mean()方法:
n = np.arange(10) print(n.mean())
标准差可以使用std()方法:
n = np.arange(10) print(n.std())
数组排序可以使用sort()方法,默认是每行自动排序:
p = np.sort([[2,5,3],[10,6,8]]) print(p)
数组的百分位数可以用percentile()函数:
q = np.arange(10) print(np.percentile(q, 50))
中位数用median()函数:
q = np.arange(10) print(np.median(q))
当个数为偶数时,中位数是中间两个数字之和除以2。
Numpy的计算方法还有很多,大家可以去网上查阅,这里只说几个常用的。
Numpy主要以数组为操作对象,在生成和调整数组方面优势非常明显。但直接观察数组却不太方便,没有序号、排列不齐等问题并不利于我们寻找数据规律,所以我们需要继续学习。
以上是“Python中如何导入Numpy库”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。