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


相关文章
|
9天前
|
计算机视觉 Python
PIL图像转换为Numpy数组:技术与案例详解
本文介绍了如何将PIL图像转换为Numpy数组,以便利用Numpy进行数学运算和向量化操作。首先简要介绍了PIL和Numpy的基本功能,然后详细说明了转换过程,包括导入库、打开图像文件、使用`np.array()`或`np.asarray()`函数进行转换,并通过打印数组形状验证转换结果。最后,通过裁剪、旋转和缩放等案例展示了转换后的应用,以及如何将Numpy数组转换回PIL图像。此外,还介绍了处理base64编码图像的完整流程。
25 4
|
1月前
|
机器学习/深度学习 数据采集 数据挖掘
解锁 Python 数据分析新境界:Pandas 与 NumPy 高级技巧深度剖析
Pandas 和 NumPy 是 Python 中不可或缺的数据处理和分析工具。本文通过实际案例深入剖析了 Pandas 的数据清洗、NumPy 的数组运算、结合两者进行数据分析和特征工程,以及 Pandas 的时间序列处理功能。这些高级技巧能够帮助我们更高效、准确地处理和分析数据,为决策提供支持。
48 2
|
1月前
|
存储 数据处理 Python
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第27天】在科学计算和数据分析领域,Python凭借简洁的语法和强大的库支持广受欢迎。NumPy和SciPy作为Python科学计算的两大基石,提供了高效的数据处理和分析工具。NumPy的核心功能是N维数组对象(ndarray),支持高效的大型数据集操作;SciPy则在此基础上提供了线性代数、信号处理、优化和统计分析等多种科学计算工具。结合使用NumPy和SciPy,可以显著提升数据处理和分析的效率,使Python成为科学计算和数据分析的首选语言。
58 3
|
1月前
|
数据采集 数据可视化 数据处理
如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`)
本文介绍了如何使用Python实现一个交易策略。主要步骤包括:导入所需库(如`pandas`、`numpy`、`matplotlib`),加载历史数据,计算均线和其他技术指标,实现交易逻辑,记录和可视化交易结果。示例代码展示了如何根据均线交叉和价格条件进行开仓、止损和止盈操作。实际应用时需注意数据质量、交易成本和风险管理。
80 5
|
1月前
|
存储 机器学习/深度学习 算法
Python科学计算:NumPy与SciPy的高效数据处理与分析
【10月更文挑战第26天】NumPy和SciPy是Python科学计算领域的两大核心库。NumPy提供高效的多维数组对象和丰富的数学函数,而SciPy则在此基础上提供了更多高级的科学计算功能,如数值积分、优化和统计等。两者结合使Python在科学计算中具有极高的效率和广泛的应用。
73 2
|
2月前
|
搜索推荐 Python
Leecode 101刷题笔记之第五章:和你一起你轻松刷题(Python)
这篇文章是关于LeetCode第101章的刷题笔记,涵盖了多种排序算法的Python实现和两个中等难度的编程练习题的解法。
28 3
|
2月前
|
Python
Numpy学习笔记(四):如何将数组升维、降维和去重
本文介绍了如何使用NumPy库对数组进行升维、降维和去重操作。
62 1
|
2月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
60 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
2月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
67 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
2月前
|
Python
使用 NumPy 进行数组操作的示例
使用 NumPy 进行数组操作的示例
45 2