NumPy 从已有的数组创建数组


NumPy是Python中重要的科学计算库之一,其提供了多种创建数组的方法。本篇技术文档将详细介绍NumPy从已有数组中创建数组的方法。

从已有数组中创建数组

NumPy提供了多种从已有数组中创建数组方式,包括复制已有数组、从已有数组中选取元素或子数组等。可以使用numpy.array()函数或特定的数组函数创建数组。

复制已有数组

复制已有数组是最简单的从已有数组中创建新数组的方法。使用numpy.array()函数并将已有数组作为参数传入即可实现数组复制。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array(arr1)

print(arr1)    # 输出: [1 2 3]
print(arr2)    # 输出: [1 2 3]

从已有数组中选取元素

可以使用数组中的索引值选取一个或多个元素,通过这些元素创建新数组。

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5, 6, 7])
arr2 = arr1[2:5]   # 选择原数组中第三个到第五个元素,不包含第五个元素
arr3 = arr1[::2]   # 选择原数组中相隔一个元素的元素

print(arr2)        # 输出:[3 4 5]
print(arr3)        # 输出:[1 3 5 7]

从已有数组中选取子数组

使用数组中的索引值选取子数组,并通过子数组创建新数组。

import numpy as np

arr1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr2 = arr1[1:]   # 选择原数组中第二行到最后一行的所有列
arr3 = arr1[:, 1:]   #选择原数组中所有行除了第一列之外的所有列

print(arr2)          # 输出: [[4 5 6] [7 8 9]]
print(arr3)          # 输出: [[2 3] [5 6] [8 9]]

使用数组函数创建新数组

NumPy提供多个特定于数组的函数,用于创建新的数组,这些函数是在已有数组上执行操作并返回新的数组。例如,函数numpy.ones()将创建具有指定形状的数组,并填充所有元素为1。

import numpy as np

arr1 = np.ones((2, 3))    # 返回一个2行3列的全部为1的数组
arr2 = np.zeros((2, 2))   # 返回一个2行2列的全部为0的数组
arr3 = np.random.rand(2, 4)   # 返回一个2行4列的随机浮点数组

print(arr1)               # 输出:
                          # [[1. 1. 1.]
                          #  [1. 1. 1.]]
print(arr2)               # 输出:
                          # [[0. 0.]
                          #  [0. 0.]]
print(arr3)               # 输出:
                          # [[0.51357146 0.93984593 0.63094768 0.81500115]
                          #  [0.4200903  0.66926927 0.98639334 0.20995944]]

结论

本篇技术文档介绍了NumPy中从已有数组创建数组的四种方式,包括复制已有数组、从已有数组中选取元素、从已有数组中选取子数组和使用数组函数创建新数组。以上方法都是在处理现有数据时最为常用和实用的方法,可帮助读者更好地统计和处理数据。