14、查找两个数组的并集
编写一个 NumPy 程序来查找两个数组的并集。Union 将返回两个输入数组中任一输入数组中唯一的、经过排序的值数组。
import numpy as np array1 = np.array([0, 1, 2, 3, 4, 5]) print("Array1: ",array1) array2 = [5, 4, 3, 9, 7] print("Array2: ",array2) print("Unique sorted array of values that are in either of the two input arrays:") print(np.union1d(array1, array2)) ''' Array1: [0 1 2 3 4 5] Array2: [5, 4, 3, 9, 7] Unique sorted array of values that are in either of the two input arrays: [0 1 2 3 4 5 7 9] '''
np.union1d(array1, array2):筛选出两个数组当中的唯一元素,顺序排列放入新数组当中。
15、测试数组中的所有元素是否都计算为 True
编写一个 NumPy 程序来测试数组中的所有元素是否都计算为 True。
注意:在 python 中,0 的计算结果为 False。
import numpy as np array1 = np.array([[0,60, 20, 40, 70], [1,2,3,4,5]]) print("Array1: ",np.all(array1)) print("Array2: ",np.all([10, 20, -50])) ''' Array1: False Array2: True '''
这个和list的用法一样,全部使用all,单个使用any。
上面的代码将all改成any,则Array也会显示True,表示只要有一个不是0,结果就为True。
16、通过重复构造数组
import numpy as np a = [1, 2, 3, 4] print("Original array") print(a) print("Repeating 2 times") x = np.tile(a, 2) print(x) print("Repeating 3 times") x = np.tile(a, 3) print(x) ''' Original array [1, 2, 3, 4] Repeating 2 times [1 2 3 4 1 2 3 4] Repeating 3 times [1 2 3 4 1 2 3 4 1 2 3 4] '''
【4】np.tile
np.tile(A,res):A 是个数组,reps 是个元组。tile这个函数把数组 A 当成一个元素来构造 shape 为 res 的数组
17、比较两个给定的数组
import numpy as np a = np.array([1, 2]) b = np.array([4, 5]) print("a > b:") print(np.greater(a, b)) print("a >= b:") print(np.greater_equal(a, b)) print("a < b:") print(np.less(a, b)) print("a <= b:") print(np.less_equal(a, b)) ''' a > b: [False False] a >= b: [False False] a < b: [ True True] a <= b: [ True True] '''
18、沿数组的第一个和最后一个轴对排序
import numpy as np a = np.array([[4, 6],[2, 1]]) print("Original array: ") print(a) print("Sort along the first axis=0: ") x = np.sort(a, axis=0) print(x) print("Sort along the last axis=1: ") y = np.sort(a, axis=1) print(y) ''' Original array: [[4 6] [2 1]] Sort along the first axis=0: [[2 1] [4 6]] Sort along the last axis=1: [[4 6] [1 2]] '''
19、获取给定数组中大于 10 的元素的值和索引
import numpy as np x = np.array([[0, 10, 20], [20, 30, 40]]) print("Original array: ") print(x) print("Values bigger than 10 =", x[x>10]) print(np.nonzero(x > 10)) ''' Original array: [[ 0 10 20] [20 30 40]] Values bigger than 10 = [20 20 30 40] (array([0, 1, 1, 1], dtype=int64), array([2, 0, 1, 2], dtype=int64)) '''
【5】np.nonzero
np.nonzero函数是numpy中用于得到数组array中非零元素的位置(数组索引)的函数。
解释
nonzero(a):返回数组a中非零元素的索引值数组。
(1)只有a中非零元素才会有索引值,那些零值元素没有索引值。
(2)返回的索引值数组是一个2维tuple数组,该tuple数组中包含一维的array数组。其中,一维array向量的个数与a的维数是一致的。
(3)索引值数组的每一个array均是从一个维度上来描述其索引值。比如,如果a是一个二维数组,则索引值数组有两个array,第一个array从行维度来描述索引值;第二个array从列维度来描述索引值。
(4)np.transpose(np.nonzero(x)) 函数能够描述出每一个非零元素在不同维度的索引值。
(5)通过a[nonzero(a)] 得到所有a中的非零值。
20、测试数组中是否存在指定的值
编写一个 NumPy 程序来测试数组中是否存在指定的值。
import numpy as np x = np.array([[1.12, 2.0, 3.45], [2.33, 5.12, 6.0]], float) print("Original array:") print(x) print(2 in x) print(0 in x) print(6 in x) print(2.3 in x) print(5.12 in x) ''' Original array: [[1.12 2. 3.45] [2.33 5.12 6. ]] True False True False True '''
21、向NumPy数组添加额外的列
import numpy as np x = np.array([[10,20,30], [40,50,60]]) y = np.array([[100], [200]]) print(np.append(x, y, axis=1)) ''' [[ 10 20 30 100] [ 40 50 60 200]] '''
22、按行列访问数组
就是使用切片…
import numpy as np x= np.arange(9).reshape(3,3) print("Original array elements:") print(x) print("Access an array by column:") print("第一行:") print(x[0,:]) print("第一列:") print(x[:,0]) ''' Original array elements: [[0 1 2] [3 4 5] [6 7 8]] Access an array by column: 第一行: [0 1 2] 第一列: [0 3 6] '''
23、替换数组中大于指定数组的元素
import numpy as np x = np.array([[ 0.409, 0.480, 0.320], [ 0.740,0.508,0.308], [ 0.509,0.345,0.156]]) print("Original array:") print(x) print("替换后:") x[x > .5] = .5 print(x) ''' Original array: [[0.409 0.48 0.32 ] [0.74 0.508 0.308] [0.509 0.345 0.156]] 替换后: [[0.409 0.48 0.32 ] [0.5 0.5 0.308] [0.5 0.345 0.156]] '''
24、删除数组中的特定元素
import numpy as np x = np.array([10, 20, 30, 40, 50, 60, 70]) index = [0, 3, 4] print("Original array:") print(x) print("Delete first, fourth and fifth elements:") new_x = np.delete(x, index) print(new_x) ''' Original array: [10 20 30 40 50 60 70] Delete first, fourth and fifth elements: [20 30 60 70] '''
25、计算一组数据的直方图
import numpy as np import matplotlib.pyplot as plt plt.hist([1, 2, 1], bins=[0, 1, 2, 3, 5]) plt.show()