快学numpy01
来源:互联网 发布:windows的uac 编辑:程序博客网 时间:2024/05/16 16:07
博客地址:http://www.fanlegefan.com
文章地址:http://www.fanlegefan.com/index.php/2017/07/02/numpy01/
调用np.array(list)初始化一个数组
a = np.array([1,2,3])print aprint type(a) [1 2 3] <type 'numpy.ndarray'>
访问数据中的元素,并修改数组中的元素
print a[0]a[0]=5print a 1 [5 2 3]
创建多维数组
b = np.array([[1,2,3,4],[4,5,6,7]])print b,type(b) [[1 2 3 4] [4 5 6 7]] <type 'numpy.ndarray'>
查看array的shape
print b.shapeprint b[1,2] (2L, 4L) 6
调用zeros创建全是0的多维array,zeros接收的参数是一个tuple,例如(2,3)
c = np.zeros((2,3))
print c
print
print c.shape
[[ 0. 0. 0.]
[ 0. 0. 0.]]
(2L, 3L)
调用ones创建全是1的array
d = np.ones((2,3))print dprintprint d.shape [[ 1. 1. 1.] [ 1. 1. 1.]] (2L, 3L)
调用full(tuple,value)定义值全部是相同数字的array
e = np.full((2,3),8)print eprint print type(e) [[8 8 8] [8 8 8]] <type 'numpy.ndarray'>
调用eye(value)创建对角array
f = np.eye(3)print f [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]
创建随机数array
a = np.random.random((3,3))print a [[ 0.83053523 0.00179318 0.30864027] [ 0.97192834 0.55587498 0.21440927] [ 0.13428121 0.32882098 0.02335231]]
创建多维空array
a = np.empty((2,3,4))print a [[[ 1.55096090e-316 5.10440800e-316 1.54337333e-316 5.10436531e-316] [ 1.93482470e-316 5.10394792e-316 1.54337333e-316 5.10438191e-316] [ 1.93482470e-316 5.10446254e-316 1.54337333e-316 4.83352326e-316]] [[ 1.93482470e-316 5.10436294e-316 1.54337333e-316 5.10436768e-316] [ 1.93482470e-316 5.10437479e-316 1.54337333e-316 5.10443171e-316] [ 1.93482470e-316 5.10442697e-316 1.54337333e-316 5.08083751e-316]]]
创建一个连续数字的array
a = np.arange(12)print aprintprint a.shape [ 0 1 2 3 4 5 6 7 8 9 10 11] (12L,)
创建指定数据类型的array
a = np.array([1,2,3],dtype=np.float64)print a.dtypeprintprint a float64 [ 1. 2. 3.]
更改array的数据类型,float类型的array装换成int的array的时候,小数部分会被舍弃
int_array = np.array([1,2,3,4])print int_array.dtype,int_arrayfloat_array = int_array.astype(np.float)print float_array.dtype,float_arrayb = np.array([1.2,3.5,9.1])print bc = b.astype(np.int64)print c int32 [1 2 3 4] float64 [ 1. 2. 3. 4.] [ 1.2 3.5 9.1] [1 3 9]
将字符串array转换成数组,失败则抛出异常
a = np.array(["1.2","12","2.3"])b = a.astype(np.float64)print bc = a.astype(dtype=np.float)print c [ 1.2 12. 2.3] [ 1.2 12. 2.3]
使用其他数组的type作为转换参数
a = np.array([1,2,3,4])b = np.array(["1.2","2.4"])c = b.astype(dtype=b.dtype)print c ['1.2' '2.4']
数组切片
a = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])print aprint a.shapeprint a[:,1]b = a[0:2,1:3]print b [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] (3L, 4L) [ 2 6 10] [[2 3] [6 7]]
当数组b是数组a的一个切片,修改b数组的值,a数组的值也会随之改变,因为b只是指向a的一个引用,
如果想修改b的值,但不修改a的值,可以在切片的时候执行复制操作
a = np.array([1,2,3,4,5])b = a[2:4]print bb[0] = 9print bprint ac = a[1:4].copy()c[0]=29print cprint a [3 4] [9 4] [1 2 9 4 5] [29 9 4] [1 2 9 4 5]a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])b = a[0:3,1:3].copy()print b[[ 2 3] [ 6 7] [10 11]]
给定不同维度的index取值
print ab = a[[1,2,1],[0,2,1]]print bprint b.shape [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [ 5 11 6] (3L,) b = np.array([1,2,0])print a[np.arange(3),b] [2 7 9]
对数组的每个元素进行加减法操作
a = np.array([[1,2,3,4], [5,6,7,8], [9,10,11,12]])b = np.array([1,2,0])a[np.arange(3),b]+=10print aa[:,:] -=2print aa *= 2print a [[ 1 12 3 4] [ 5 6 17 8] [19 10 11 12]] [[-1 10 1 2] [ 3 4 15 6] [17 8 9 10]] [[-2 20 2 4] [ 6 8 30 12] [34 16 18 20]]
对数组进行筛选取值
a = np.array([[1,9,3,4], [5,6,1,8], [9,2,1,12]])index = (a>4)print indexprint a[index],a[index].shapeprint a[a>4] [[False True False False] [ True True False True] [ True False False True]] [ 9 5 6 8 9 12] (6L,) [ 9 5 6 8 9 12]
初始化的时候指定数组类型
x = np.array([1,2])y = np.array([1.2,1.4])z = np.array([1,2,3,4,5],dtype=np.float64)print x.dtype,y.dtype,z.dtype int32 float64 float64
数组运算
数组加法减法
a = np.array([1,2,3,5])b = np.array([3,2,2,5])print a.sum()print a + bprint np.add(a,b)print np.add(1,a)print a -bprint np.subtract(a,b) 11 [ 4 4 5 10] [ 4 4 5 10] [2 3 4 6] [-2 0 1 0] [-2 0 1 0]
数组元素逐个相乘,相除
a = np.array([1,2,3,5])b = np.array([3,2,2,5])print a*7print np.multiply(7,a)print a*bprint np.multiply(a,b)print a/2print b/aprint np.divide(b,a) [ 7 14 21 35] [ 7 14 21 35] [ 3 4 6 25] [ 3 4 6 25] [0 1 1 2] [3 1 0 1] [3 1 0 1]
数组平方根
a = np.array([1,2,3,5])print np.sqrt(a) [ 1. 1.41421356 1.73205081 2.23606798]
矩阵乘法,向量内积
a = np.array([[1,2],[3,4]])b = np.array([[3,2],[3,5]])print a.dot(b)print np.dot(a,b)c = np.array([2,3])print a.dot(c)print c.dot(a) [[ 9 12] [21 26]] [[ 9 12] [21 26]] [ 8 18] [11 16]
阅读全文
0 0
- 快学numpy01
- 快学Scala
- 快学Hibernate
- 《快学scala》代码
- 快学scala笔记.
- 快学Big Data
- 快学Scala-基础
- 快学BigData目录
- 《快学Scala》勘误
- 快学numpy02
- 快学numpy03
- 快学numpy04
- java学的快忘得快
- 快学scala(1 - 5)
- 快学Scala--第一章习题
- 快学scala:笔记1
- 快学scala:笔记2
- 快学scala:笔记3
- 自记linux命令
- java.lang.UnsatisfiedLinkError: dlopen failed: library "XXX.so" not found
- 续上面
- 我们做App的一定要用这种友好的方式去跟用户交互
- opencv 中常用的数据类型
- 快学numpy01
- 封装自己的jq插件
- [leetcode]141. Linked List Cycle@Java解题报告
- 更新linux系统内核后分辨率问题解决
- 【HTCVR】VRTK基本功能脚本说明
- MacOs Sierra安装第三方软件提示损坏扔到废纸篓的解决办法
- easy ui datagrid 若表格中内容超出时
- 《leetcode》valid-sudoku
- 韩信点兵(hanxin)