python 常用技巧 — 数组 (array)
目录:
1. 数组每一行除以这一行的总数(numpy divide row by row sum)
2. 数组每一行或者每一列求平均 (python average array columns or rows)
3. 数组每一行或者每一列求加权平均 (python weight average array columns or rows)
4. 计算数组得到每一行或者每一列的和 (python sum columns of an array)
5. 生成指定维度的随机矩阵 (python generate random array)
6. 数组中对元素进行布尔类型判断 (python check elements in array with Boolean type)
7. 数组中是否存在满足条件的数 (python check if exsit element in array satisfies a condition)
8. 数组中所有元素是否有0元素 (python check whether all elements in numpy is zero)
内容:
1. 数组每一行除以这一行的总数(numpy divide row by row sum)
https://stackoverflow.com/questions/16202348/numpy-divide-row-by-row-sum
方法1:
>>> e
array([[ 0., 1.],
[ 2., 4.],
[ 1., 5.]])
>>> e/e.sum(axis=1)[:,None]
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
方法2:
>>> (e.T/e.sum(axis=1)).T
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
方法3:
>>> e/e.sum(axis=1, keepdims=True)
array([[ 0. , 1. ],
[ 0.33333333, 0.66666667],
[ 0.16666667, 0.83333333]])
2. 数组每一行或者每一列求平均 (python average array columns or rows)
import numpy as np
In [50]: a=np.arange(1,13).reshape(3,4)
In [51]: a
Out[51]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
In [52]: np.average(a, axis=1)
Out[52]: array([ 2.5, 6.5, 10.5])
In [53]: np.average(a, axis=0)
Out[53]: array([5., 6., 7., 8.])
3. 数组每一行或者每一列求加权平均 (python weight average array columns or rows)
https://docs.scipy.org/doc/numpy/reference/generated/numpy.average.html
>>> data = np.arange(6).reshape((3,2))
>>> data
array([[0, 1],
[2, 3],
[4, 5]])
>>> np.average(data, axis=1, weights=[1./4, 3./4])
array([0.75, 2.75, 4.75])
4. 计算数组得到每一行或者每一列的和 (python sum columns of an array)
>>> import numpy as np
>>> a = np.arange(12).reshape(4,3)
>>> a.sum(axis=0)
array([18, 22, 26])
>>> a.sum(axis=1)
array([ 3, 12, 21, 30])
5. 生成指定维度的随机矩阵 (python generate random array)
https://www.codespeedy.com/how-to-create-matrix-of-random-numbers-in-python-numpy/
(1)生成指定维度的小数数组
In [1]: import numpy as np In [2]: a=np.random.rand(3,4) In [3]: a
Out[3]:
array([[0.03403289, 0.31416715, 0.42700029, 0.49101901],
[0.70750959, 0.4852401 , 0.11448147, 0.21570702],
[0.87512839, 0.82521751, 0.56915875, 0.67623931]])
(2)生成只能维度的整数数组
In [8]: np.random.randint(1,10,size=(3,4))
Out[8]:
array([[8, 1, 4, 3],
[7, 1, 8, 7],
[2, 5, 4, 3]])
6. 数组中对元素进行布尔类型判断 (python check elements in array with Boolean type)
https://docs.scipy.org/doc/numpy/reference/generated/numpy.all.html
https://docs.scipy.org/doc/numpy/reference/generated/numpy.any.html
>>> np.all([-1, 4, 5])
True >>> np.all([[True,False],[True,True]])
False >>> np.all([[True,False],[True,True]], axis=0)
array([ True, False]) // 如果要判断至少存在一个元素则使用 >>> np.any([-1, 0, 5])
True >>> np.any([[True, False], [True, True]])
True >>> np.any([[True, False], [False, False]], axis=0)
array([ True, False])
7. 数组中是否存在满足条件的数 (python check if exsit element in array satisfies a condition)
In [1]: import numpy as np In [2]: a=np.arange(1, 13).reshape(3, 4) In [3]: a
Out[3]:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]]) In [4]: a>7
Out[4]:
array([[False, False, False, False],
[False, False, False, True],
[ True, True, True, True]]) In [5]: np.any(a>7)
Out[5]: True In [6]: np.all(a>7)
Out[6]: False
8. 数组中所有元素是否有0元素 (python check whether all elements in numpy is zero)
https://stackoverflow.com/questions/18395725/test-if-numpy-array-contains-only-zeros
In [1]: import numpy as np In [2]: not np.any(np.array([0, 0, 2]))
Out[2]: False In [3]: not np.any(np.array([0, 0, 0]))
Out[3]: True
// 计算非零个数再进行判断
In [4]: np.count_nonzero(np.array([0, 0, 2]))
Out[4]: 1 In [5]: np.count_nonzero(np.array([0, 0, 0]))
Out[5]: 0
// 用集合去掉重复元素再判断
In [6]: set(np.array([0, 0, 2]))
Out[6]: {0, 2} In [7]: set(np.array([0, 0, 0]))
Out[7]: {0}
9.
python 常用技巧 — 数组 (array)的更多相关文章
- python 常用技巧
一.字符串与数值的转换 Python中字符串转换为数值: str_num = '99' num = int(str_num) 整型数转换为字符串: num = 99 str_num = str(num ...
- python常用技巧 — 杂
目录: 1. 找到字符串中的所有数字(python find digits in string) 2. python 生成连续的浮点数(如 0.1, 0.2, 0.3, 0.4, ... , 0.9) ...
- python 常用技巧 — 列表(list)
目录: 1. 嵌套列表对应位置元素相加 (add the corresponding elements of nested list) 2. 多个列表对应位置相加(add the correspond ...
- python常用技巧
1,关于tab键与4个空格: 由于不同平台间,tab键值设置有所区别,据相关介绍,官方在缩进方面推荐使用4个空格.方便起见,可设置tab自动转换为4个空格. 1.1在pycharm中: 通过fi ...
- python 常用技巧 — 字典 (dictionary)
目录: 1. python 相加字典所有的键值 (python sum all values in dictionary) 2. python 两个列表分别组成字典的键和值 (python two l ...
- Python NumPy中数组array.min(0)返回数组
如果没有参数min()返回一个标量,如果有参数0表示沿着列,1表示沿着行.
- #1 Python灵活技巧
前言 Python基础系列博文已顺利结束,从这一篇开始将进入探索更加高级的Python用法,Python进阶系列文章将包含面向对象.网络编程.GUI编程.线程和进程.连接数据库等.不过在进阶之前,先来 ...
- python算法常用技巧与内置库
python算法常用技巧与内置库 近些年随着python的越来越火,python也渐渐成为了很多程序员的喜爱.许多程序员已经开始使用python作为第一语言来刷题. 最近我在用python刷题的时候想 ...
- php常用数组array函数实例总结【赋值,拆分,合并,计算,添加,删除,查询,判断,排序】
本文实例总结了php常用数组array函数.分享给大家供大家参考,具体如下: array_combine 功能:用一个数组的值作为新数组的键名,另一个数组的值作为新数组的值 案例: <?php ...
随机推荐
- Mac OS 网络设置教程 wifi设置与宽带设置详解
虽然所有设备连接无线网络的步骤都相差无几,但是Mac与windows系统还是不相同的,那么,苹果Mac怎么连接无线网络呢?针对此问题,本文就为大家介绍Mac网络的设置教程,有兴趣的朋友们可以了解下.如 ...
- Yii2.0基础框架
前言:最近在用php写一个项目的接口,所以需要学习一下Yii的框架,也在这里记录一下. 整体结构 ssets文件夹:assets的作用是方便模块化,插件化的,一般来说出于安全原因不允许通过url访问p ...
- xampp 配置HTTPS
参考: https://blog.csdn.net/qq_35128576/article/details/81326524
- css3的三大特性以及移动端说明
css3的三大特性: 一.层叠性 所谓层叠性是指多种CSS样式的叠加. 是浏览器处理冲突的一个能力,如果一个属性通过两个相同选择器设置到同一个元素上,那么这个时候一个属性就会将另一个属性层叠掉 比如先 ...
- vector内存增长方式
首先必须要了解vector是一种特殊的数组,因此其内存必然是连续的 其次它的连续是建立在不断地对内存的预分配上的,即不断地销毁当前,重新建立内存,效率有点低.所以存在几个函数capacity, siz ...
- 4412 搭建tftp服务器
搭建服务器 --安装xinetd,sudo apt-get install xinetd --安装tftp和tftpd,sudo apt-get install tftp tftpd --配置/etc ...
- Vue使用的扩展
1.Bus(总线)实现非父子组件通信 Vue2.0提供了Vuex进行非父子组件之间的通信,但在简单的场景下,可以使用一个空的Vue实例作为中央事件总线. 实现代码示例: <div id=&quo ...
- 【Linux】服务器间免密登录、免确认机器指纹
1.生成密钥 ssh-keygen -t rsa -C "<填写自己方便识别的注释>" -b 4096 没什么问题就执行三次空格. 三次问题是1.填入生成密钥对的路径 ...
- 【靶场练习_sqli-labs】SQLi-LABS Page-3 (Stacked Injections)
Less-39: ?id=1 and 1 ,?id=1 and 1 : 回显不同,数字型 ?id=0 union select 1,2,group_concat(table_name) from in ...
- The Tree-planting Day and Simple Disjoint Sets
First I have to say: I have poor English. I am too young, too simple, sometimes naïve. It was tree-p ...