numpy快速入门教程
来源:互联网 发布:欧洲人怎么看中国知乎 编辑:程序博客网 时间:2024/05/21 09:43
numpy如果使用python做过机器学习或者科学计算方面项目的朋友并陌生,它是一个非常好用的python科学计算库,而且numpy是用c实现的,效率也非常高。这篇博客译自斯坦福大学python快速入门教程的numpy快速入门教程,除此之外我还添加了一些自己的见解。
一、numpy创建数组
import numpy as np#numpy数组创建if __name__ == "__main__": #通过Python的列表来初始化数组 a = np.array([1,2,3]) print(a) #[1 2 3] #获取数组的类型 print(type(a)) #<class 'numpy.ndarray'> #获取数组的shape print(a.shape) #(3,) #修改数组中的元素 a[1] = 9 print(a) #[1 9 3] #通过numpy内置的函数来初始化数组 #创建一个全0的数组 b = np.zeros((3,3)) print(b) ''' [[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]] ''' #创建一个全1的数组 c = np.ones((3,3)) print(c) ''' [[ 1. 1. 1.] [ 1. 1. 1.] [ 1. 1. 1.]] ''' #创建一个指定的矩阵 d = np.full((3,3),6) print(d) ''' [[ 6. 6. 6.] [ 6. 6. 6.] [ 6. 6. 6.]] ''' #创建一个单位矩阵 e = np.eye(3) print(e) ''' [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]] ''' #创建一个随机数的矩阵 f = np.random.random((3,3)) print(f) ''' [[ 0.96550928 0.59525056 0.58061721] [ 0.21303049 0.82996793 0.77914749] [ 0.30441988 0.6055475 0.93730574]] '''
二、numpy切片
import numpy as npif __name__ == "__main__": #数组切片 #创建一个数组 a = np.array([[1,2,3],[4,5,6],[7,8,9]]) #对numpy数组进行切片 #切片的时候,下标是从0开始的,但是不包括右边区间 b = a[:2,:3] print(b) ''' [[1 2 3] [4 5 6]] ''' c = a[1:2,1:2] print(c) ''' [[5]] ''' #改变切片后的任意一个元素值,所有的数组相应的值也都会发现改变,这里与Python的列表切片有所不同 #从下面的结果其实可以将numpy的切片理解成为地址的复制 c[0,0] = 55 print(a) ''' [[ 1 2 3] [ 4 55 6] [ 7 8 9]] ''' print(b) ''' [[ 1 2 3] [ 4 55 6]] ''' print(c) ''' [[55]] ''' ''' 下面通过三种不同的切片方法来获取数组a的最后一行元素 通过下面可以发现,其实第一种方法和第三种方法的结果是一样的 可以理解成a[2]其实就是指定获取数组第二行的所有元素 ''' #获取的数组比原数组的阶要低 row_1 = a[2,:] print(row_1) #[7 8 9] print(row_1.shape) #(3,) #获取的数组与原数组拥有相同的阶 row_2 = a[2:3,:] print(row_2) #[[7 8 9]] print(row_2.shape) #(1, 3) row_3 = a[2] print(row_3) #[7 8 9] print(row_3.shape) #(3,) ''' 通过上面对数组进行切片操作,也许你会发现一个问题, 获取的数组总是原数组的子数组,要么是属于原数组的某(几)一行或者某(几)一列中的元素 下面介绍一种获取原数组中任意元素所组成的数组的方法 ''' arbitrary = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) #[0,0,2]作为数组arbitrary行的下标,[0,1,2]作为数组列的下标,然后进行一一对应组合 arbitrary_1 = arbitrary[[0,0,2],[0,1,2]] print(arbitrary_1) #[1 2 9] arbitrary_2 = np.array([arbitrary[0,0],arbitrary[0,1],arbitrary[2,2]]) print(arbitrary_2) #[1 2 9]
阅读全文
0 0
- numpy快速入门教程
- numpy快速入门教程(二)
- Numpy快速入门教程(三):SciPy,Matplotlib
- Numpy入门教程
- Numpy 入门教程
- Numpy快速入门教程(一):数组创建与数组访问
- Numpy快速入门教程(二):数据类型,数组计算,Broadcasting机制
- Numpy 入门教程(1)
- Numpy 入门教程(2)
- Python中的Numpy入门教程
- Numpy 入门教程(1)
- Numpy 入门教程(2)
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Python中的Numpy入门教程
- Numpy 入门教程(1)
- C++信息学奥赛一本通题库1033计算线段长度
- 欢迎使用CSDN-markdown编辑器
- POJ 1056-IMMEDIATE DECODABILITY
- (安卓)拦截器 以及 封装post 请求
- Java环境变量配置
- numpy快速入门教程
- matlab dicom格式图像转为tif格式的读取
- http协议-request
- ResultSetMetaData
- 数组2·求最大值及其下标
- POJ-1050-To the Max-二维最大子序列和
- Python--错误总结1
- 从零开发B/S机架应用程序(五)
- 关于MatConvNet深度学习库Index exceeds matrix dimensions错误注意事项