numpy.ndarray常用属性和方法
import numpy as np a = np.array([[1,2,3],[4,3,2],[6,3,5]])
print(a) [[1 2 3]
[4 3 2]
[6 3 5]] print(a.ndim) # array的维度 2 print(a.dtype) # array元素的数据类型 int32 print(a.shape) # array每个维度的大小 (3, 3) print(a.T) # array的转置 [[1 4 6]
[2 3 3]
[3 2 5]] print(a.real) # array每个元素的实部 [[1 2 3]
[4 3 2]
[6 3 5]] print(a.imag) # array每个元素的虚部 [[0 0 0]
[0 0 0]
[0 0 0]] print(a.flat[1],a.flat[2:5]) # 将array变成一维的基础上对其进行索引 print(a) a.flat[[1,4]]=8 # 将array对应位置的值进行改变 print(a) 2 [3 4 3]
[[1 2 3]
[4 3 2]
[6 3 5]]
[[1 8 3]
[4 8 2]
[6 3 5]] b = a.tolist() # 将array变成python列表并返回 print(b) [[1, 8, 3], [4, 8, 2], [6, 3, 5]] c = a.copy() # 拷贝array并返回,对得到array进行改变不会影响原来的array c[1,1] = 100 print("c:",c) print("a:",a) print(id(c),id(a)) c: [[ 1 8 3]
[ 4 100 2]
[ 6 3 5]]
a: [[1 8 3]
[4 8 2]
[6 3 5]]
1319291177280 1319291122112 d = a.view() # 将array的数据进行另外一个可视化,两者id不同,但进行修改时会影响 print(id(d),id(a)) d[1,1] = 200 print("d:",d) print("a:",a) a[1,1] = 150 print("d:",d) print("a:",a) 1319291176960 1319291122112
d: [[ 1 8 3]
[ 4 200 2]
[ 6 3 5]]
a: [[ 1 8 3]
[ 4 200 2]
[ 6 3 5]]
d: [[ 1 8 3]
[ 4 150 2]
[ 6 3 5]]
a: [[ 1 8 3]
[ 4 150 2]
[ 6 3 5]] a.fill(5) # 以指定的值填充array print(a) [[5 5 5]
[5 5 5]
[5 5 5]] a = np.array([[1,3,5],[2,6,3],[9,6,4],[10,2,8]]) b = a.reshape((2,3,2)) # 在原数据的基础上改变维度,返回一个新array,不改变原来的array print(a) print(b) [[ 1 3 5]
[ 2 6 3]
[ 9 6 4]
[10 2 8]]
[[[ 1 3]
[ 5 2]
[ 6 3]] [[ 9 6]
[ 4 10]
[ 2 8]]] c = b.transpose() # 返回一个转置后的array,可以指定维度顺序,不改变原来的array print(c,"\n================") d = b.transpose(0,2,1) print(d) [[[ 1 9]
[ 5 4]
[ 6 2]] [[ 3 6]
[ 2 10]
[ 3 8]]]
================
[[[ 1 5 6]
[ 3 2 3]] [[ 9 4 2]
[ 6 10 8]]] print(b) e = b.flatten() # 把array变成一维的 print(e) f = b.ravel() print(f) [[[ 1 3]
[ 5 2]
[ 6 3]] [[ 9 6]
[ 4 10]
[ 2 8]]]
[ 1 3 5 2 6 3 9 6 4 10 2 8]
[ 1 3 5 2 6 3 9 6 4 10 2 8] g = b.take([0,6]) # 通过索引获取array中的元素并返回新的array,可以通过axis参数指定维度 h = b.take([0,2],axis=1) i = b.take(1,axis=0) print(g,"\n===================") print(h,"\n===================") print(i) [1 9]
===================
[[[1 3]
[6 3]] [[9 6]
[2 8]]]
===================
[[ 9 6]
[ 4 10]
[ 2 8]] b = np.array([[[ 1,3], [ 5 ,2], [ 6 ,3]], [[ 9 ,6], [ 4 ,10], [ 2 ,8]]]) print(b,"\n============================") b.sort(axis=0) print(b,"\n============================") b.sort(axis=1) print(b,"\n============================") b = np.array([[[ 1,3], [ 5 ,2], [ 6 ,3]], [[ 9 ,6], [ 4 ,10], [ 2 ,8]]]) b.sort() print(b) """ sort进行排序时,可以通过axis指定维度,默认为最后一维,正序 当指定axis=0时,在第一个维度上排序,本例中该维度上有2个部分。 排序时,把两部分当做两个独立的array比较大小(元素位置一一对应), 顺序不符合要求的进行交换。当axis=1时,在第二个维度上排序, 此时不考虑外部第一个维度中两个部分的顺序,只分别对第二个维度上 三个小array进行同样的排序 """ print(b.max(axis=-1)) # 返回最大值,最小值,不指定axis时,在所有元素中进行比较 print(b.max()) print(b.min()) [[ 3 5 6]
[ 9 10 8]]
10
1 print(b.argmax(axis=1)) # 返回最大值,最小值的索引,不指定axis时,在所有元素中进行比较 print(b.argmin()) [[2 2]
[0 1]]
0 print(b.ptp()) # 返回最大值,最小值的差值,不指定axis时,在所有元素中进行比较 print(b.ptp(axis=1)) 9
[[2 3]
[4 2]] c = b.clip([2,7]) # 将array中所有元素限制在指定的大小范围,超出范围的用指定的边界值代替 print(c) [[[ 2 7]
[ 2 7]
[ 3 7]] [[ 6 9]
[ 4 10]
[ 2 8]]] a = np.arange(9).reshape(3,3) #求array对角线上元素的和 print(a.trace()) b = np.arange(8).reshape(2,4) print(b.trace()) 12
5 a = np.floor(10*np.random.random((2,3,4))) print(a) print(a.sum()) # 求和 print(a.sum(axis=1)) [[[0. 0. 1. 8.]
[0. 3. 0. 2.]
[5. 3. 9. 8.]] [[9. 0. 1. 5.]
[7. 6. 9. 6.]
[7. 5. 6. 7.]]]
107.0
[[ 5. 6. 10. 18.]
[23. 11. 16. 18.]] a = np.floor(10*np.random.random((2,3))) print(a) print(a.cumsum()) # 求累加和 print(a.cumsum(axis=1)) [[7. 3. 1.]
[6. 8. 8.]]
[ 7. 10. 11. 17. 25. 33.]
[[ 7. 10. 11.]
[ 6. 14. 22.]] a = np.floor(10*np.random.random((2,3))) print(a) print(a.mean()) # 求均值 print(a.mean(axis=1)) [[6. 6. 1.]
[9. 8. 5.]]
5.833333333333333
[4.33333333 7.33333333] a = np.floor(10*np.random.random((2,3))) print(a) print(a.var()) # 求方差 print(a.var(axis=1)) [[7. 0. 0.]
[2. 0. 4.]]
6.805555555555557
[10.88888889 2.66666667] a = np.floor(10*np.random.random((2,3))) print(a) print(a.std()) # 求标准差 print(a.std(axis=0)) [[9. 1. 1.]
[6. 4. 1.]]
3.0368111930481
[1.5 1.5 0. ] a = np.floor(10*np.random.random((2,3))) print(a) print(a.prod()) # 求积 print(a.prod(axis=0)) [[5. 7. 4.]
[8. 9. 8.]]
80640.0
[40. 63. 32.] a = np.floor(10*np.random.random((2,3))) print(a) print(a.cumprod()) # 求累积 print(a.cumprod(axis=1)) [[1. 1. 8.]
[9. 6. 6.]]
[1.000e+00 1.000e+00 8.000e+00 7.200e+01 4.320e+02 2.592e+03]
[[ 1. 1. 8.]
[ 9. 54. 324.]] a = np.array([[1,0,2],[-1,3,5]]) print(a.all()) # 所有元素都为True,返回True,否则返回Flase a = np.array([[1,2,2],[-1,3,5]]) print(a.all()) False
True
numpy.ndarray常用属性和方法的更多相关文章
- Node.js process 模块常用属性和方法
Node.js是常用的Javascript运行环境,本文和大家发分享的主要是Node.js中process 模块的常用属性和方法,希望通过本文的分享,对大家学习Node.js http://www.m ...
- ios基础篇(四)——UILabel的常用属性及方法
UILabel的常用属性及方法:1.text //设置和读取文本内容,默认为nil label.text = @”文本信息”; //设置内容 NSLog(@”%@”, label.text); //读 ...
- UITableView常用属性和方法 - 永不退缩的小白菜
UITableView常用属性和方法 - 永不退缩的小白菜 时间 2014-05-27 01:21:00 博客园精华区原文 http://www.cnblogs.com/zhaofucheng11 ...
- UIView的一些常用属性和方法
UIView的一些常用属性和方法 1. UIView的属性 UIView继承自UIResponder,拥有touches方法. - (instancetype)initWithFrame:(CGRec ...
- SVG DOM常用属性和方法介绍(1)
12.2 SVG DOM常用属性和方法介绍 将以Adobe SVG Viewer提供的属性和方法为准,因为不同解析器对JavaScript以及相关的属性和方法支持的程度不同,有些方法和属性是某个解析 ...
- 第190天:js---String常用属性和方法(最全)
String常用属性和方法 一.string对象构造函数 /*string对象构造函数*/ console.log('字符串即对象');//字符串即对象 //传统方式 - 背后会自动将其转换成对象 / ...
- UIView常用属性与方法/UIKit继承结构
UIView常用属性与方法 @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDy ...
- JavaScript中Number常用属性和方法
title: JavaScript中Number常用属性和方法 toc: false date: 2018-10-13 12:31:42 Number.MAX_VALUE--1.79769313486 ...
- 12-27 UITableView常用属性及方法
UITableView也有自己的代理协议,它本身继承自UIScrollView 一:代理要遵守代理协议<UITableViewDelegate>,代理协议中的代理方法: 1.改变某一行的行 ...
随机推荐
- linux 块设备驱动(五)——块设备应用层的操作
一: 加载好sbull驱动 root@CarRadio:/# ls /dev/sbull -l brw-r--r-- 1 root root 254, 16 Mar 25 08:25 /dev/sbu ...
- httpurlconnection模拟post提交form表单(普通文本和上传文件) (
http://blog.sina.com.cn/s/blog_8417657f0101gvpc.html 用HttpUrlConnection模拟post表单进行文件上传平时很少使用,比较麻烦. 原理 ...
- 28个jQuery性能优化的建议
我一直在寻找有关jQuery性能优化方面的小窍门,能让我那臃肿的动态网页应用变得轻便些.找了很多文章后,我决定将最好最常用的一些优化性能的建议列出来.我也做了一个jQuery性能优化的简明样式表,你可 ...
- Spring中的JDBC操作
一.Spring模板JdbcTemplate 为了使 JDBC 更加易于使用, Spring 在 JDBC API 上定义了一个抽象层, 以此建立一个 JDBC 存取框架JdbcTemplate. 作 ...
- xorm
https://github.com/go-xorm/xorm Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3, ...
- DuiLib笔记之Control常用属性
name 指定控件名称,同一窗口内必须唯一,类型:STRING float 用于指定控件是否使用绝对定位,或设置FloatPercent,类型:BOOL,默认值为false,格式:float=&quo ...
- windows server安装oracle
倒腾windows server的时候一定要先整net framework然后再安装oracle不然连不上或者装一下client 也能连上但是为了不安装client一定要先装framework!
- appium(12)-The starting of an app
Steps: you have to prepare environment for Android. Details are provided here: http://appium.io/slat ...
- PySpider安装与使用(Windows系统下)
PySpider Begin 安装pip install pyspider 在windows系统好像会出现如下问题 Command "python setup.py egg_info&quo ...
- (深入理解计算机系统)AT&T汇编指令
AT&T汇编指令学习(GCC) 寄存器命名原则: 相比inter语法,AT&T语法格式要求所有的寄存器都必须加上取值符"%". 操作码命令格式: 源/目的操作数顺序 ...