numpy入门<二>
链接数组
1、concatenate((arr1, arr2…), axis)
前面跟数组组成的元组,后面跟想要链接的维度(即保持其他维度不变,在axis维度上进行合并),默认是0
1 | arr1 = np.array([1, 2, 3]) |
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
arr = np.stack((arr1, arr2), axis=1)
print(arr)
res:
[[1 4]
[2 5]
[3 6]]
1 |
|
arr1 = np.array([[1, 2, 3], [1, 2, 3]])
arr2 = np.array([[4, 5, 6], [4, 5, 6]])
arr = np.hstack((arr1, arr2))
print(arr)
res:
[[1 2 3 4 5 6]
[1 2 3 4 5 6]]
arr1 = np.array([[[1, 2, 3], [1, 2, 3]]])
arr2 = np.array([[[4, 5, 6], [4, 5, 6]]])
arr = np.hstack((arr1, arr2))
print(arr)
res:
[[[1 2 3]
[1 2 3]
[4 5 6]
[4 5 6]]]
1 |
|
arr1 = np.array([[[1, 2, 3], [1, 2, 3]]])
arr2 = np.array([[[4, 5, 6], [4, 5, 6]]])
arr = np.vstack((arr1, arr2))
print(arr)
print(arr1.shape)
print(arr.shape)
res:
[[[1 2 3]
[1 2 3]]
[[4 5 6]
[4 5 6]]]
(1, 2, 3)
(2, 2, 3)
1 |
|
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)
res:
[array([1, 2]), array([3, 4]), array([5]), array([6])] # 返回的是套数组的数组
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
res:
[array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]]), array([[ 2],
[ 5],
[ 8],
[11],
[14],
[17]]), array([[ 3],
[ 6],
[ 9],
[12],
[15],
[18]])]
1 |
|
arr = np.array([1, 2, 3, 4, 5, 4, 4])
x = np.where(arr == 4)
print(x)
res:
(array([3, 5, 6], dtype=int64),)
arr = np.array([1, 2, 3, 4, 5, 6, 7, 8])
x = np.where(arr%2 == 0)
print(x)
res:
(array([1, 3, 5, 7], dtype=int64),)
1 |
|
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7)
print(x)
res: #应该将数字7插入索引1以保持排序顺序。该方法从左开始搜索,返回第一个索引,即数字7不再大于下一个值的位置。
1 |
|
arr = np.array([6, 7, 8, 9])
x = np.searchsorted(arr, 7, side=’right’)
print(x)
res:
2 # 数字7应该插入索引2以保持排序顺序。该方法从右边开始搜索,返回第一个索引,即数字7不再小于下一个值。
1 |
|
arr = np.array([1, 3, 5, 7])
x = np.searchsorted(arr, [2, 4, 6])
print(x)
res: # 返回值是一个数组:[1 2 3],包含3个索引,其中2、4、6将被插入到原始数组中以保持顺序。
[1 2 3]
1 |
|
arr = np.array([3, 2, 0, 1])
print(np.sort(arr))
res:
[0 1 2 3]
1 |
|
arr = np.array([‘banana’, ‘cherry’, ‘apple’])
print(np.sort(arr))
res:
[‘apple’ ‘banana’ ‘cherry’]
arr = np.array([True, False, True])
print(np.sort(arr))
res:
[False True True]
1 |
|
arr = np.array([[3, 2, 4], [5, 0, 1]])
print(np.sort(arr))
res:
[[2 3 4]
[0 1 5]]
1 |
|
arr = np.array([41, 42, 43, 44])
x = [True, False, True, False]
newarr = arr[x]
print(newarr)
res:
[41 43]
arr = np.array([41, 42, 43, 44])
filter_arr = arr > 42 # 直接创建过滤数组
newarr = arr[filter_arr]
print(filter_arr)
print(newarr)
res:
[False False True True]
[43 44]






