numpy数组(4)-二维数组
python创建二维 list 的方法是在 list 里存放 list :
l = [[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]
numpy可以直接创建一个二维的数组:
import numpy as np
l = np.array([
[1,2,3,4],
[5,6,7,8],
[9,10,11,12],
[13,14,15,16]
])
numpy二维数组获取某个值:
[a, b] : a 表示行索引, b 表示列索引,就是获取第 a 行第 b个元素
print l[1, 3] #
也可以截取某一部分,组成一个新的numpy数组:
print(l[1:3, 2:4])
# 取第1-3行,第2-4列的数据
# 结果:
[[ 7 8]
[11 12]]
也可以获取某一行或者某一列,得到一个新的一维的numpy数组:
print(l[1, :]) # 结果:
[5 6 7 8]
print(l[:, 3]) # 结果:
[4 8 12 16]
二维numpy数组同样有 mean() , std() 等内置方法,计算的是整个数组的所有值,无论在哪行哪列:
print(l.mean()) # 结果:
8.5
二维数组的向量化运算也是一样的:
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
b = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
print (a + b) # 结果:
[[ 2 3 4]
[ 6 7 8]
[10 11 12]]
一个综合栗子:
# 假设有如下5个地铁站10天的客流数据
ridership = np.array([
[ 0, 0, 2, 5, 0],
[1478, 3877, 3674, 2328, 2539],
[1613, 4088, 3991, 6461, 2691],
[1560, 3392, 3826, 4787, 2613],
[1608, 4802, 3932, 4477, 2705],
[1576, 3933, 3909, 4979, 2685],
[ 95, 229, 255, 496, 201],
[ 2, 0, 1, 27, 0],
[1438, 3785, 3589, 4174, 2215],
[1342, 4043, 4009, 4665, 3033]
])
找出第一天里客流量最多的车站,然后返回这个车站的日平均客流,以及返回所有车站的平均日客流,作为对比:
def mean_riders_for_max_station(ridership):
max_index = ridership[0, :].argmax() # 获取第一天(第0行)的最大值的索引
mean_for_max = ridership[:, max_index].mean() # 通过获取的索引,获取对应列,取平均值
overall_mean = ridership.mean()
return (overall_mean, mean_for_max) print(mean_riders_for_max_station(ridership)) # 结果:
(2342.6, 3239.9)
补充:
栗子中的 max_index = ridership[0, :].argmax() 也可以写成 max_index = np.argmax(ridership,axis=1)[0]
一个是数组的方法,一个是numpy的方法,其中的 axis 表示轴,后面会细讲.
numpy数组(4)-二维数组的更多相关文章
- C#的一维数组和二维数组定义方式:
一维数组: //一维数组定义与初始化 ,, };//第一种方式 , , }; //第二种方式 int[] one3; //第三种方式 one3=,,}; 二维数组: //二维数组定义与初始化 //不规 ...
- C# 数组、一维数组、二维数组、多维数组、锯齿数组
C# 数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请 ...
- c#简单实现二维数组和二维数组列表List<>的转置
刚看到网上一篇文章里用sql实现了行列转置.sql server 2005/2008只用一个pivot函数就可以实现sql server 2000很多行的复杂实现.提到转置,立刻想起还在求学阶段曾经做 ...
- java - day005 - 数组工具类, 数组复制,二维数组,变量,方法, 面向对象
1. java.util.Arrays 数组工具类 Arrays.toString (数组) 数组值链接字符串 Arrays.sort(数组) 基本类型: 优化的快速排序 引用类型: 优化的合 ...
- Java数组之二维数组
Java中除了一维数组外,还有二维数组,三维数组等多维数组.本文以介绍二维数组来了解多维数组. 1.二维数组的基础 二维数组的定义:二维数组就是数组的数组,数组里的元素也是数组. 二维数组表示行列二维 ...
- java基础5 (一维)数组和二维数组
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等)) 二维数组(二维数组的遍历.排序.查找.定义. ...
- JS中:数组和二维数组、MAP、Set和枚举的使用
1.数组和二维数组: 方法一: var names = ['Michael', 'Bob', 'Tracy']; names[0];// 'Michael' 方法二: var mycars=new ...
- 二维数组,锯齿数组和集合 C# 一维数组、二维数组(矩形数组)、交错数组(锯齿数组)的使用 C# 数组、多维数组(矩形数组)、锯齿数组(交叉数组)
二维数组,锯齿数组和集合 一.二维数组 二维数组:一维数组----豆角二维数组----表格 定义:1.一维数组:数据类型[] 数组变量名 = new 数据类型[数组长度];数据类型[] 数组变量名 = ...
- 第二篇 javascript一维数组和二维数组及方法
一.数组 什么是数组 程序=数据+算法 数组就是一种很常见的保存批量数据的数据结构 一.定义数组 var arr1=[]; //定义了一个不包含元素的数组 ,,]; //定义了一个包含三个元素的数组 ...
- android JNI 一维数组、二维数组的访问与使用
在JNI中访问JAVA类中的整型.浮点型.字符型的数据比较简单,举一个简单的例子,如下: //得到类名 jclass cls = (*env)->GetObjectClass(env, obj) ...
随机推荐
- 【Java】 剑指offer(55-1) 二叉树的深度
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一棵二叉树的根结点,求该树的深度.从根结点到叶结点依次经过 ...
- 012 Spark在IDEA中打jar包,并在集群上运行(包括local模式,standalone模式,yarn模式的集群运行)
一:打包成jar 1.修改代码 2.使用maven打包 但是目录中有中文,会出现打包错误 3.第二种方式 4.下一步 5.下一步 6.下一步 7.下一步 8.下一步 9.完成 二:在集群上运行(loc ...
- 046 hiveserver2以及beeline客户端的使用
一:开启服务 1.启动前端的hiveserver2 按住ctrl+c就可以结束这个服务. 2.怎么知道已经开启的服务 如果进程在后台,可以查出来,kill这些进程. 3.后端开启服务 二:beelin ...
- ModuleNotFoundError: No module named 'win32api'
原因:缺少了win32解决: pip install pypiwin32
- Biquads
From : http://www.earlevel.com/main/2003/02/28/biquads/ One of the most-used filter forms is the ...
- Jackson ObjectMapper readValue过程
1.整体调用栈 2.看一下调用栈的两个方法 resolve 方法中通过 Iterator i$ = this._beanProperties.iterator() 遍历属性的所有子属性,缓存对应的 d ...
- u3d 创建元件 预制件 U3d creates component prefabricated parts
u3d 创建元件 预制件 U3d creates component prefabricated parts 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@ ...
- 关于WEB前端开发的工具
俗话说:"工谷善其事,先必利其器."一个用得顺手的工具,确实能为我们的开发带来方 便,更重要的是会让我们更加享受工具开发过程中所带来的乐趣. 1.编码工具: 记事本之类的编辑器都可 ...
- Python 将图片转化为 HTML 页面
最近在 GitHub 看到一个挺有意思的 Python 程序(img2html: Convert a image to HTML). 它能将图片的每个像素用文字代替,最后生成一个HTML文档,在浏览器 ...
- db2系统表相应功能
SYSIBM: 基本系统编目,不建议直接访问SYSCAT: 默认授权给Public组.只读编目视图,一般通过这个来获取编目信息SYSSTAT: 可更新编目视图,会影响优化器的优化策略SYSFUN: 用 ...