【NumPy】一文向您详细介绍 np.array()
🌈 欢迎莅临我的个人主页👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇
🎓 博主简介:
我是高斯小哥,一名来自985高校的普通本硕生,曾有幸在中科院顶刊发表过一作论文。多年的深度学习研究和实践,让我逐渐熟练掌握了PyTorch框架,每一步成长都离不开持续的学习和积累。
🔧 技术专长:
在深度学习的广阔天地中,我不断探索前行,尤其在CV、NLP及多模态等领域有着丰富的实践经验。我热衷于将技术转化为解决实际问题的工具,因此,在业余时间,我积极投身于技术支持工作,已累计为数百位用户提供近千次专业服务,助力他们【高效】解决问题,近一年好评率100%。我坚信,技术的价值在于服务人类,提升生活品质。
📝 博客风采:
我深知知识分享的重要性,因此,在博客中我倾注心血,撰写并分享关于深度学习、PyTorch、Python的实用内容。今年,我笔耕不辍,已发表原创文章400余篇,代码分享次数逾四万次。我衷心希望通过这些内容,为广大读者提供实用的学习资源和解决方案,助力他们在深度学习的道路上稳步前行。
💡 服务项目:
除了知识分享,我还提供科研入门辅导(代码实战方面)、知识付费答疑以及个性化需求解决等服务。我深知每个人的需求都是独特的,因此我致力于提供个性化的解决方案,以满足不同用户的需求。
如果您对以上服务感兴趣,欢迎添加👉👉👉底部微信(gsxg605888)👈👈👈与我交流(请您备注来意)。
🌵文章目录🌵
📚 一、NumPy与np.array()的初步认识
NumPy(Numerical Python的简称)是Python中用于处理数组运算的扩展库,它提供了大量的数学函数来操作数组,使得数组的处理变得高效且简洁。而np.array()
则是NumPy库中的一个基础函数,用于创建数组。
-
例如,我们可以这样创建一个一维数组:
import numpy as np # 创建一个一维数组 arr_1d = np.array([1, 2, 3, 4, 5]) print(arr_1d)
-
或者创建一个二维数组(矩阵):
# 创建一个二维数组(矩阵) arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) print(arr_2d)
🚀 二、np.array()的高级用法
np.array()
函数不仅仅可以创建基本的数值数组,还可以处理更复杂的数据结构,比如嵌套列表,以及指定数据类型。
-
例如,创建一个包含不同数据类型的数组:
import numpy as np # 创建一个包含不同数据类型的数组 mixed_array = np.array([1, 'a', 3.14]) print(mixed_array)
-
或者指定数组的数据类型:
# 创建一个指定数据类型的数组 int_array = np.array([1, 2, 3], dtype=np.int64) float_array = np.array([1.1, 2.2, 3.3], dtype=np.float32) print(int_array) print(float_array)
🔍 三、np.array()与Python原生列表的对比
np.array()创建的数组与Python的原生列表相比,有很多优势。例如,NumPy数组在内存中是连续存储的,这使得数组元素之间的访问和计算更为高效。
-
下面是一个简单的性能对比示例:
import time # 使用原生Python列表进行元素相加 start_time = time.time() python_list = list(range(1000000)) sum_python = sum(python_list) end_time = time.time() print(f"Python list sum: {sum_python}, Time: {end_time - start_time:.6f}s") # 使用NumPy数组进行元素相加 start_time = time.time() numpy_array = np.arange(1000000) sum_numpy = np.sum(numpy_array) end_time = time.time() print(f"NumPy array sum: {sum_numpy}, Time: {end_time - start_time:.6f}s") # output # Python list sum: 499999500000, Time: 0.037715s # NumPy array sum: 499999500000, Time: 0.004326s
在上面的示例中,我们可以明显看到NumPy数组在计算大规模数据时的高效性。
🌈 四、np.array()的广播机制
广播(Broadcasting)是NumPy中用于处理不同形状数组之间算数运算的一种强大机制。它允许NumPy在执行元素级运算时自动扩展数组的维度,以匹配其他数组的形状。
- 下面是一个简单的示例:
# 广播机制示例 a = np.array([[1, 2], [3, 4]]) b = np.array([10, 20]) # a的形状是(2, 2),b的形状是(2,),NumPy通过广播机制将b的形状“扩展”为(2, 2) c = a + b print(c)
📊 五、np.array()在数据分析中的应用
NumPy的数组在数据分析中扮演着重要的角色。它提供了大量的统计函数,使得我们可以方便地对数组数据进行处理和分析。
-
例如,计算数组的均值、中位数、标准差等:
# 创建一个随机数组 data = np.random.rand(1000) # 计算均值 mean = np.mean(data) # 计算中位数 median = np.median(data) # 计算标准差 std_dev = np.std(data) print(f"Mean: {mean}, Median: {median}, Standard Deviation: {std_dev}")
💡 六、np.array()的扩展功能
除了基础的创建和运算功能,np.array()
还有许多扩展功能,这些功能能够极大地增强我们对数组的操作的能力。
-
数组切片和索引
NumPy支持高级的索引和切片功能,使得我们能够方便地访问和修改数组中的特定元素。
# 创建一个二维数组 arr_2d = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 访问特定元素 element = arr_2d[1, 2] # 访问第二行第三列的元素,值为6 print(element) # 切片操作 slice_arr = arr_2d[:2, 1:] # 切片操作,取前两行,从第二列开始到结束的所有元素 print(slice_arr)
-
数组重塑和转置
通过
reshape
和transpose
方法,我们可以改变数组的形状和维度。# 创建一个一维数组 arr_1d = np.arange(6) # 将一维数组重塑为二维数组 arr_2d_reshaped = arr_1d.reshape((2, 3)) print(arr_2d_reshaped) # 转置二维数组 arr_2d_transposed = arr_2d.transpose() print(arr_2d_transposed)
-
数组排序和搜索
NumPy还提供了对数组进行排序和搜索的函数。
# 对数组进行排序 arr_sorted = np.sort(arr_1d) print(arr_sorted) # 搜索数组中是否存在特定元素 element_to_find = 4 if element_to_find in arr_1d: print(f"Element {element_to_find} found in the array.") else: print(f"Element {element_to_find} not found in the array.")
🎉 七、总结
np.array()
作为NumPy库的核心函数,为我们提供了高效、灵活且强大的数组处理工具。通过深入学习np.array()
的用法和特性,我们可以更好地利用NumPy进行数值计算、数据分析和科学计算。从创建基本数组,到高级索引和切片,再到数组重塑和排序,np.array()
的丰富功能使得我们能够轻松应对各种数据处理任务。希望本文能够帮助您深入了解np.array()
,并在实际工作中灵活运用它。