Python刷题系列(2)_NumPy数组(下)

简介: 编写一个 NumPy 程序,将数值列表转换为一维 NumPy 数组。

14、查找两个数组的并集


编写一个 NumPy 程序来查找两个数组的并集。Union 将返回两个输入数组中任一输入数组中唯一的、经过排序的值数组。2de37d157e7e4d569153e47aa142f037.png

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]
'''

image.png

【4】np.tile

np.tile(A,res):A 是个数组,reps 是个元组。tile这个函数把数组 A 当成一个元素来构造 shape 为 res 的数组

image.png



17、比较两个给定的数组


image.png

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]]
'''
image.png

image.png

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))
'''

76983e33f42c47b59e97484dc60f8b42.png


094a3f0007564d49a7dca18009354a88.png



【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 程序来测试数组中是否存在指定的值。

a298354d73f14c48bcea0a21ff597678.png

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]]
'''

0cc291afdbe143918e0a6acde96fb5c3.png



22、按行列访问数组


就是使用切片…


d80e7d63e39348d49898b5892d5238f6.png

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、替换数组中大于指定数组的元素


3629e40ff9584bca82b7391c5840a649.png

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]
'''

5685194392f84fe7a6441ac062172ddb.png


25、计算一组数据的直方图


import numpy as np    
import matplotlib.pyplot as plt
plt.hist([1, 2, 1], bins=[0, 1, 2, 3, 5])
plt.show()


5dbca72966e946618bd44d156f6b8989.png


相关文章
|
1月前
|
机器学习/深度学习 存储 算法
Python中的NumPy库:数值计算与科学计算的基石
【2月更文挑战第29天】NumPy是Python科学计算的核心库,专注于高效处理大型多维数组和矩阵。其核心是ndarray对象,提供快速数组操作和数学运算,支持线性代数、随机数生成等功能。NumPy广泛应用于数据处理、科学计算和机器学习,简化了矩阵运算、统计分析和算法实现,是数据科学和AI领域的重要工具。
|
1月前
|
存储 索引 Python
请解释Python中的NumPy库以及它的主要用途。
【2月更文挑战第27天】【2月更文挑战第97篇】请解释Python中的NumPy库以及它的主要用途。
|
3天前
|
Shell Python
python|闲谈2048小游戏和数组的旋转及翻转和转置
python|闲谈2048小游戏和数组的旋转及翻转和转置
21 1
|
8天前
|
存储 算法 数据处理
《Numpy 简易速速上手小册》第3章:Numpy 数组操作与变换(2024 最新版)
《Numpy 简易速速上手小册》第3章:Numpy 数组操作与变换(2024 最新版)
30 0
|
8天前
|
存储 数据采集 数据挖掘
《Numpy 简易速速上手小册》第2章:Numpy 数据类型和数组构造(2024 最新版)
《Numpy 简易速速上手小册》第2章:Numpy 数据类型和数组构造(2024 最新版)
24 0
|
9天前
|
存储 机器学习/深度学习 数据挖掘
自定义数据类型与NumPy结构数组详解
【4月更文挑战第17天】本文详细介绍了NumPy中的自定义数据类型和结构数组。通过`numpy.dtype`可创建自定义数据类型,如示例中的包含整数和浮点数字段的数组。结构数组能存储不同类型的元素,每行作为一个记录,包含多个字段。创建结构数组时,定义字段及其数据类型,然后通过字段名进行访问和操作。掌握这些技术能提升数据处理效率和灵活性,尤其在科学计算和数据分析领域。
|
9天前
|
搜索推荐 数据挖掘 数据处理
NumPy数组统计与排序方法全览
【4月更文挑战第17天】本文介绍了NumPy在Python中的数组统计和排序功能。主要包括计算平均值、标准差和方差的`np.mean()`, `np.std()`, `np.var()`方法,以及求最大值、最小值、百分位数的功能。在排序方面,讲解了基本排序的`np.sort()`,获取排序索引的`np.argsort()`,逆序排序和随机排序的方法。这些工具对于数据分析和科学计算十分实用,能有效提升数据处理效率。
|
9天前
|
存储 数据处理 Python
NumPy数组运算:元素级与广播机制剖析
【4月更文挑战第17天】NumPy是Python数值计算库,提供元素级运算和广播机制。元素级运算针对数组每个元素单独计算,如加法、减法等;广播机制允许不同形状数组间运算,通过扩展小数组形状匹配大数组。了解这两点能帮助更好地运用NumPy进行数值计算和数据处理。
|
9天前
|
存储 索引 Python
深入解析NumPy数组的形状与重塑
【4月更文挑战第17天】本文深入解析了NumPy数组的形状和重塑。数组形状是表示数组维度和大小的元组,可通过`shape`属性获取。重塑允许改变数组形状而不改数据,需保证元素总数不变。`reshape`方法用于重塑,其中`-1`可让NumPy自动计算尺寸。注意重塑遵循元素总数相等、仅一次`-1`、内存存储顺序及返回新数组的原则。理解和掌握这些概念对高效使用NumPy处理多维数组至关重要。
|
9天前
|
Python
用Python的Numpy求解线性方程组
用Python的Numpy求解线性方程组
10 0