【NumPy】一文向您详细介绍 np.array()

【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()还有许多扩展功能,这些功能能够极大地增强我们对数组的操作的能力。

  1. 数组切片和索引

    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)
    
  2. 数组重塑和转置

    通过reshapetranspose方法,我们可以改变数组的形状和维度。

    # 创建一个一维数组
    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)
    
  3. 数组排序和搜索

    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(),并在实际工作中灵活运用它。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高斯小哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值