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) ...
随机推荐
- Hash值破解工具Hashcat使用
Hash值破解工具Hashcat使用 Hashcat介绍 HashCat系列软件拥有十分灵活的破解方式,可以满足绝大多数的破解需求. Hashcat系列软件是比较牛逼的密码破解软件,系列软件包含Has ...
- scss、less 对浏览器兼容的处理方法, css 的单行溢出、多行溢出
1. scss @mixin rounded($param1,$param2) { #{$param1}:$param2; -webkit-#{$param1}: $param2; ...
- BZOJ.4361.isn(DP 树状数组 容斥)
题目链接 长度为\(i\)的不降子序列个数是可以DP求的. 用\(f[i][j]\)表示长度为\(i\),结尾元素为\(a_j\)的不降子序列个数.转移为\(f[i][j]=\sum f[i-1][k ...
- Python3函数式编程
Python函数式编程 函数式编程可以使代码更加简洁,易于理解.Python提供的常见函数式编程方法如下: map(函数,可迭代式)映射函数 filter(函数,可迭代式)过滤函数 reduce(函数 ...
- 潭州课堂25班:Ph201805201 爬虫高级 第七课 sclapy 框架 爬前程网 (课堂笔)
定时对该网页数据采集,所以每次只爬第一个页面就可以, 创建工程 scrapy startproject qianchen 创建运行文件 cd qianchenscrapy genspider qian ...
- 【模板】倍增LCA
题号:洛谷3379 %:pragma GCC optimize ("Ofast") #include<cstdio> #include<vector> #i ...
- Oracle 拼接列数据的方法
select wm_concat(fphone) phone from dq_phone_ndtbdxz wm_concat(列名):把多列值,合并成一列,用,隔开.
- C++使用thread类多线程编程
转自:C++使用thread类多线程编程 C++11中引入了一个用于多线程操作的thread类,下面进行简单演示如何使用,以及如果进行多线程同步. thread简单示例 #include <io ...
- 集合(5)—Map之HashMap()
定义 .Map接口提供了一中种映射关系,其中的元素是以键值对(key- value)的形式存储 ,能够实现根据键(key)快速查找值(value) .键(key)和值(value)可以是任意类型的变量 ...
- ORACLE中的字符串替换 replce、regexp_replace 和 translate
一.语法 replace(str_source,str1,str2) 把 str_source 中 str1 字符串替换为 str2 字符串,当 str2 为 null 或'' 时,与下个作用相同 ...