目录:
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)
方法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)
>>> 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)
>>>importnumpy asnp
>>>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)
(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)
>>> 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)
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.