6.数组元素访问
>>> b = np.array(([1,2,3],[4,5,6],[7,8,9]))
>>> b
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
>>> b[0] # 第0行
array([1, 2, 3])
>>> b[0][0] # 第0行第0列的元素值
1
>>> b[0,2] # 第0行第2列的元素值
3
>>> b[[0,1]] # 第0行和第1行
array([[1, 2, 3],
[4, 5, 6]])
>>> b[[0,0], [1,2]] # 第0行第1列的元素和第0行第2列的元素
array([2, 3])
>>> x = np.arange(0,100,10,dtype=np.floating)
>>> x
array([ 0., 10., 20., 30., 40., 50., 60., 70., 80., 90.])
>>> x[[1, 3, 5]] # 同时访问多个位置上的元素
array([ 10., 30., 50.])
>>> index = np.random.randint(0, len(x), 5) # 这里的x还是前面的x
>>> index
array([9, 5, 9, 5, 6])
>>> noise = np.random.standard_normal(5)*0.3 # 随机噪声
>>> noise
array([ 0.07000973, 0.17404817, 0.16620985, 0.15281169, -0.08693726])
>>> x[index]
array([ 90., 50., 90., 50., 60.])
>>> x[index] += noise # 添加噪声,同时修改多个值
>>> x[index]
array([ 90.16620985, 50.15281169, 90.16620985, 50.15281169, 59.91306274])
>>> x = np.random.randint(1, 10, (2,3))
>>> x
array([[6, 3, 4],
[7, 4, 5]])
>>> x.take([0,4]) # 第1个和第5个元素,行优先
array([6, 4])
>>> x.take([0,3])
array([6, 7])
>>> x.take([0,1], axis=0) # 前两行
array([[6, 3, 4],
[7, 4, 5]])
>>> x.take([0,1], axis=1) # 前两列
array([[6, 3],
[7, 4]])
7.三角函数运算
>>> x = np.arange(0, 100, 10, dtype=np.floating)
>>> np.sin(x) # 一维数组中所有元素求正弦值
array([ 0. , -0.54402111, 0.91294525, -0.98803162, 0.74511316,
-0.26237485, -0.30481062, 0.77389068, -0.99388865, 0.89399666])
>>> b = np.array(([1, 2, 3], [4, 5, 6], [7, 8, 9]))
>>> np.cos(b) # 二维数组中所有元素求余弦值
array([[ 0.54030231, -0.41614684, -0.9899925 ],
[-0.65364362, 0.28366219, 0.96017029],
[ 0.75390225, -0.14550003, -0.91113026]])
>>> np.round(_) # 四舍五入
array([[ 1., -0., -1.],
[-1., 0., 1.],
[ 1., -0., -1.]])
>>> x = np.random.rand(10) * 10 # 包含10个随机数的数组
>>> x
array([ 2.16124573, 2.58272611, 6.18827437, 5.21282916, 4.06596404,
3.34858432, 5.60654631, 9.49699461, 1.68564166, 2.9930861 ])
>>> np.floor(x) # 所有元素向下取整
array([ 2., 2., 6., 5., 4., 3., 5., 9., 1., 2.])
>>> np.ceil(x) # 所有元素向上取整
array([ 3., 3., 7., 6., 5., 4., 6., 10., 2., 3.])
>>> np.angle(1+1j, deg=True) # 返回指定向量的角度
45.0
>>> np.angle(1+1j) # 返回指定向量对应角度的弧度
0.78539816339744828
>>> np.angle([1, 1j, 1+1j], deg=True) # 返回多个向量的角度
array([ 0., 90., 45.])
>>> x = np.linspace(0, 3.14, 10)
>>> x
array([ 0. , 0.34888889, 0.69777778, 1.04666667, 1.39555556,
1.74444444, 2.09333333, 2.44222222, 2.79111111, 3.14 ])
>>> y = np.cos(x) # 余弦
>>> y
array([ 1. , 0.93975313, 0.76627189, 0.50045969, 0.17434523,
-0.17277674, -0.4990802 , -0.76524761, -0.93920748, -0.99999873])
>>> np.arccos(y) # 反余弦
array([ 0. , 0.34888889, 0.69777778, 1.04666667, 1.39555556,
1.74444444, 2.09333333, 2.44222222, 2.79111111, 3.14 ])
>>> np.absolute(-3) # 绝对值或模
3
>>> np.absolute(3+4j)
5.0
>>> np.ceil(3.2) # 向上取整
4.0
>>> np.ceil(np.array([1, 2, 3.1]))
array([ 1., 2., 4.])
>>> np.isnan(np.NAN)
True
>>> np.log2(8) # 对数
3.0
>>> np.log10(100)
2.0
>>> np.log10([100, 1000, 10000])
array([ 2., 3., 4.])
>>> np.multiply(3, 9)
27
>>> np.multiply([1, 2, 3], [4, 5, 6])
array([ 4, 10, 18])
>>> np.multiply(3, [5,6])
array([15, 18])
>>> np.multiply(3, np.array([5,6]))
array([15, 18])
>>> np.sqrt([9, 16, 36])
array([ 3., 4., 6.])
>>> np.sqrt(range(10))
array([ 0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ])