Python刷题系列(1)_NumPy Basic(上)

简介: NumPy是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使处理“关系”或“标记”数据既简单又直观。它旨在成为在Python中进行实际的现实世界数据分析的基本高级构建块。

NumPy是一个Python包,提供快速,灵活和富有表现力的数据结构,旨在使处理“关系”或“标记”数据既简单又直观。它旨在成为在Python中进行实际的现实世界数据分析的基本高级构建块。


NumPy Basic



1、获取numpy版本并显示numpy构建配置


编写一个NumPy程序来获取numpy版本并显示numpy构建配置。

import numpy as np 
print(np.__version__) # 注意这里是两条下划线
print(np.show_config())
'''
1.20.3
blas_mkl_info:
    libraries = ['mkl_rt']
    library_dirs = ['D:/Anaconda\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['D:/Anaconda\\Library\\include']
blas_opt_info:
    libraries = ['mkl_rt']
    library_dirs = ['D:/Anaconda\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['D:/Anaconda\\Library\\include']
lapack_mkl_info:
    libraries = ['mkl_rt']
    library_dirs = ['D:/Anaconda\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['D:/Anaconda\\Library\\include']
lapack_opt_info:
    libraries = ['mkl_rt']
    library_dirs = ['D:/Anaconda\\Library\\lib']
    define_macros = [('SCIPY_MKL_H', None), ('HAVE_CBLAS', None)]
    include_dirs = ['D:/Anaconda\\Library\\include']
None
'''


2、获取有关add函数的帮助


编写一个NumPy程序来获取有关add函数的帮助。

import numpy as np 
print(np.info(np.add))


3、测试给定数组的任何元素是否都不为零


编写一个NumPy程序来测试给定数组的任何元素是否都不为零。

只要有一个元素为0,则结果就为False

import numpy as np
x = np.array([1, 2, 3, 4])
print("Original array:")
print(x)
print("Test if none of the elements of the said array is zero:")
print(np.all(x))
x = np.array([0, 1, 2, 3])
print("Original array:")
print(x)
print("Test if none of the elements of the said array is zero:")
print(np.all(x))

这里涉及python当中的all函数:


any()实现了或(OR)运算,而all()实现了与(AND)运算。


【1】对于any(iterables),如果可迭代对象iterables中任意存在每一个元素为True则返回True。特例:若可迭代对象为空,比如空列表[],则返回False。


【2】对于all(iterables),如果可迭代对象iterables中所有元素都为True则返回True。特例:若可迭代对象为空,比如空列表[],则返回True。

aac71d911e71440c9d2cf52284938251.png82cf65cb49da4ad68142a99be0a90a2b.png



4、测试给定数组的任何元素是否为非零


只要有一个元素非零,则得到的结果为True.

import numpy as np
x = np.array([0, 0, 0, 0])
print("Original array:")
print(x)
print("Test whether any of the elements of a given array is non-zero:")
print(np.any(x))
x = np.array([0, 0, 2, 0])
print("Original array:")
print(x)
print("Test whether any of the elements of a given array is non-zero:")
print(np.any(x))

这里涉及python当中的any函数:


any()实现了或(OR)运算,而all()实现了与(AND)运算。


【1】对于any(iterables),如果可迭代对象iterables中任意存在每一个元素为True则返回True。特例:若可迭代对象为空,比如空列表[],则返回False。


【2】对于all(iterables),如果可迭代对象iterables中所有元素都为True则返回True。特例:若可迭代对象为空,比如空列表[],则返回True。

a5ba85ef8a9e496a89b40609a73a26e9.png



5、逐元素测试给定数组的有限性


编写一个 NumPy 程序来测试给定数组元素的有限性(不是无穷大或不是数字)。

import numpy as np
a = np.array([1, 0, np.nan, np.inf])
print("Original array")
print(a)
print("Test a given array element-wise for finiteness :")
print(np.isfinite(a))

e1a5f51a46d1422fb0bcffac3547fece.png


【1】math.isfinite():是数学模块的库方法,用于检查给定数是否为有限数,它接受数字(整数/浮点数,有限,无限或NaN)。如果 number 是有限数字(或可转换为有限数字),那么返回 true。否则,如果 number 是 NaN(非数字),或者是正、负无穷大的数,则返回 false。


【2】np.nan:表示not a number


【3】np.inf :表示+∞,是没有确切的数值的,类型为浮点型


6、逐元素测试正无穷大或负无穷大


编写一个 NumPy 程序来逐个元素测试正无穷大或负无穷大

import numpy as np
a = np.array([1, 0, np.nan, np.inf])
print("Original array")
print(a)
print("Test element-wise for positive or negative infinity:")
print(np.isinf(a))
'''
Original array
[  1.   0.  nan  inf]
Test element-wise for positive or negative infinity:
[False False False  True]        
'''

【1】np.isinf(x):判断x数组当中是否有正无穷大或者负无穷大的数,返回值是布尔类型的list

0410eb53a1dc43d99968e74b50b7f660.png



7、逐元素测试给定数组的 NaN


编写一个 NumPy 程序来逐个元素测试给定数组的 NaN

import numpy as np
a = np.array([1, 0, np.nan, np.inf])
print("Original array")
print(a)
print("Test element-wise for NaN:")
print(np.isnan(a))
'''
Original array
[  1.   0.  nan  inf]
Test element-wise for NaN:
[False False  True False]   
'''


【1】np.isnan(x):判断x数组当中是否有Nan值,返回值是布尔类型的list


8、逐元素测试给定数组的复数、实数


编写一个 NumPy 程序来逐个元素测试给定数组的复数、实数。还要测试给定数字是否为标量类型。

【1】np.iscomplex(a):测试a数组当中是否存在复数,返回值是布尔类型的list

【2】np.isreal(a):测试a数组当中是否存在实数,返回值是布尔类型的list

【3】np.isscalar(3.1):测试3.1是否是标量,返回值是布尔类型

import numpy as np
a = np.array([1+1j, 1+0j, 4.5, 3, 2, 2j])
print("Original array")
print(a)
print("Checking for complex number:")
print(np.iscomplex(a))
print("Checking for real number:")
print(np.isreal(a))
print("Checking for scalar type:")
print(np.isscalar(3.1))
print(np.isscalar([3.1]))


9、创建两个给定数组的元素比较


编写一个NumPy程序来创建两个给定数组的元素比较(更大,greater_equal,更少和less_equal)。

import numpy as np
x = np.array([3, 5])
y = np.array([2, 5])
print("Original numbers:")
print(x)
print(y)
print("Comparison - greater")
print(np.greater(x, y))
print("Comparison - greater_equal")
print(np.greater_equal(x, y))
print("Comparison - less")
print(np.less(x, y))
print("Comparison - less_equal")
print(np.less_equal(x, y))
'''
Original numbers:
[3 5]
[2 5]
Comparison - greater
[ True False]
Comparison - greater_equal
[ True  True]
Comparison - less
[False False]
Comparison - less_equal
[False  True]            
'''

【1】np.greater(x, y):判断x是否大于y

【2】np.greater_equal(x, y):判断x是否大于等于y

【3】np.less(x, y):判断x是否小于y

【4】np.less_equal(x, y):判断x是否小于等于y


10、创建数组,并确定数组占用的内存大小


编写一个NumPy程序来创建一个值为1,7,13,105的数组,并确定数组占用的内存大小。

import numpy as np
X = np.array([1, 7, 13, 105])
print("Original array:")
print(X)
print("Size of the memory occupied by the said array:")
print("%d bytes" % (X.size * X.itemsize))
'''
Original array:
[  1   7  13 105]
Size of the memory occupied by the said array:
32 bytes    
'''

【1】X.size:求数组X当中的元素个数

【2】X.itemsize:X数组中一个元素的长度(字节)


11、创建从 30 到 70 的整数数组


import numpy as np
array=np.arange(30,71)
print("Array of the integers from 30 to70")
print(array)

7d8670390dc54094899c8d790e057b8a.png


12、创建3x3单位矩阵


编写一个NumPy程序来创建一个3x3单位矩阵。

import numpy as np
array_2D=np.identity(3)
print('3x3 matrix:')
print(array_2D)

image.png


13、创建包含从30到70的所有偶数整数的数组


编写一个NumPy程序来创建一个包含从30到70的所有偶数整数的数组。

import numpy as np
array=np.arange(30,71,2)
print("Array of all the even integers from 30 to 70")
print(array) 


14、创建由10个0,10个1,10个5组成的数组


编写一个NumPy程序来分别创建一个包含10个0,10个1,10个5的数组。

import numpy as np
array=np.zeros(10)
print("An array of 10 zeros:")
print(array)
array=np.ones(10)
print("An array of 10 ones:")
print(array)
array=np.ones(10)*5
print("An array of 10 fives:")
print(array)
'''
An array of 10 zeros:
[ 0.  0.  0.  0.  0.  0.  0.  0.  0.  0.]
An array of 10 ones:
[ 1.  1.  1.  1.  1.  1.  1.  1.  1.  1.]
An array of 10 fives:
[ 5.  5.  5.  5.  5.  5.  5.  5.  5.  5.]     
'''

ba596c2d93e642499b98fe2adf2f58e1.png46912743032d44f8888b80db6795e566.pngce65bc23b52e4dffbd81102d117198ba.png


15、使用并迭代创建一个3X4数组


编写一个NumPy程序来创建一个3x4矩阵,其中填充了从10到21的值。

import numpy as np
a = np.arange(10,22).reshape((3, 4))
print("Original array:")
print(a)
print("Each element of the array is:")
for x in np.nditer(a):
  print(x,end=" ")
'''
Original array:
[[10 11 12 13]
 [14 15 16 17]
 [18 19 20 21]]
Each element of the array is:
10 11 12 13 14 15 16 17 18 19 20 21    
'''


【1】nditer:使用nditer可以完成逐个访问数组中的元素。

【2】end=" ":表示循环输出的元素后面以空格进行分割。

75607aa984dc43caacbc474b82ea429f.png


相关文章
|
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成为科学计算和数据分析的首选语言。
59 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完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧2
【Python篇】NumPy完整指南(上篇):掌握数组、矩阵与高效计算的核心技巧
101 10
|
2月前
|
机器学习/深度学习 数据采集 算法
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
【10月更文挑战第5天】随着数据科学和机器学习领域的快速发展,处理大规模数据集的能力变得至关重要。Python凭借其强大的生态系统,尤其是NumPy、Pandas和SciPy等库的支持,在这个领域占据了重要地位。本文将深入探讨这些库如何帮助科学家和工程师高效地进行数据分析,并通过实际案例来展示它们的一些高级应用。
67 0
探索Python科学计算的边界:NumPy、Pandas与SciPy在大规模数据分析中的高级应用
|
2月前
|
机器学习/深度学习 算法 数据挖掘
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧1
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
70 5
|
2月前
|
机器学习/深度学习 算法 数据可视化
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧2
【Python篇】深度探索NumPy(下篇):从科学计算到机器学习的高效实战技巧
48 1
|
2月前
|
数据挖掘 索引 Python
Python数据分析篇--NumPy--进阶
Python数据分析篇--NumPy--进阶
23 0