python---Numpy模块中数组运算的常用代码示例

慢慢学。

import numpy as np

# Numpy数组运算

print('========常见数组数学运算+-*/%**=========')
arr1 = np.array([1, 2, 3])
arr2 = np.array([1, 2, 3])
print(arr1 + arr2)
print(arr1 - arr2)
print(arr1 * arr2)
print(arr1 / arr2)
print(arr1 % arr2)
print(arr1 ** arr2)
print('========大小不同的数组参与运算的唯一办法,广播=========')
arr3 = np.array([1, 2])
arr4 = np.array([[1, 2], [3, 4], [5, 6]])
print(arr3 + arr4)
print('========用newaxis常量明确指定数组的广播方式=========')
arr1 = np.zeros((2, 2), float)
arr2 = np.array([1., 2.], float)
print(arr1 + arr2)
print(arr1 + arr2[np.newaxis, :])
print(arr1 + arr2[:, np.newaxis])
print('========数组支持按条件查询=========')
arr = np.array([[1, 2], [5, 9], [6, 15]], float)
print(arr > 7)
print(arr[arr>=7])
print(arr[np.logical_and(arr>5, arr<11)])
print('========根据索引选取元素=========')
arr1 = np.array([1, 4, 5, 9], float)
arr2 = np.array([0, 1, 1, 3, 1, 1, 1], int)
print(arr1[arr2])
print(arr1[[0, 1, 1, 3, 1]])
print('========多维数组的选取,使用多个一维度的索引数组=========')
arr1 = np.array([[1, 2], [5, 13]], float)
arr2 = np.array([1, 0, 0, 1], int)
arr3 = np.array([1, 1, 0, 1], int)
print(arr1[arr2, arr3])
print('========take函数支持以索引数组为参数,从调用它的数组选取元素=========')
arr1 = np.array([7, 6, 6, 9], float)
arr2 = np.array([1, 0, 1, 3, 3, 1], int)
print(arr1.take(arr2))
print('========用axis指定维度,take函数可从调用它的多维数组,沿指定维度选取一部分元素=========')
arr1 = np.array([[10, 21], [62, 33]], float)
arr2 = np.array([0, 0, 1], int)
print(arr1.take(arr2, axis=0))
print(arr1.take(arr2, axis=1))
print('========put函数为take的逆函数,将一个数组的元素放到调用该函数的另一个数组的指定位置=========')
arr1 = np.array([2, 1, 6, 2, 1, 9], float)
arr2 = np.array([3, 10, 2], float)
arr1.put([1, 4], arr2)
print(arr1)
print('========两维数组的乘法也是元素级的(矩阵乘法不是元素级,啥意思?)=========')
arr1 = np.array([[11, 22], [23, 14]], float)
arr2 = np.array([[25, 30], [13, 33]], float)
print(arr1 * arr2)
PS C:\test> & C:/Python37/python.exe c:/test/ml.py
========常见数组数学运算+-*/%**=========
[2 4 6]
[0 0 0]
[1 4 9]
[1. 1. 1.]
[0 0 0]
[ 1  4 27]
========大小不同的数组参与运算的唯一办法,广播=========
[[2 4]
 [4 6]
 [6 8]]
========用newaxis常量明确指定数组的广播方式=========
[[1. 2.]
 [1. 2.]]
[[1. 2.]
 [1. 2.]]
[[1. 1.]
 [2. 2.]]
========数组支持按条件查询=========
[[False False]
 [False  True]
 [False  True]]
[ 9. 15.]
[9. 6.]
========根据索引选取元素=========
[1. 4. 4. 9. 4. 4. 4.]
[1. 4. 4. 9. 4.]
========多维数组的选取,使用多个一维度的索引数组=========
[13.  2.  1. 13.]
========take函数支持以索引数组为参数,从调用它的数组选取元素=========
[6. 7. 6. 9. 9. 6.]
========用axis指定维度,take函数可从调用它的多维数组,沿指定维度选取一部分元素=========
[[10. 21.]
 [10. 21.]
 [62. 33.]]
[[10. 10. 21.]
 [62. 62. 33.]]
========put函数为take的逆函数,将一个数组的元素放到调用该函数的另一个数组的指定位置=========
[ 2.  3.  6.  2. 10.  9.]
========两维数组的乘法也是元素级的(矩阵乘法不是元素级,啥意思?)=========
[[275. 660.]
 [299. 462.]]

猜你喜欢

转载自www.cnblogs.com/aguncn/p/10801589.html
今日推荐