Python中ndarray的定义
什么是ndarray
在Python中,ndarray(N-dimensional array)是NumPy库中最重要的数据结构之一。ndarray是一个多维数组对象,用于存储相同类型的元素。它是NumPy库的核心,提供了高性能的数值计算功能。
ndarray与Python的内置列表(list)相似,但具有更多的功能和优势。它可以存储大量的数据,并且能够进行高效的数值计算和操作。ndarray是NumPy库的基础,许多其他NumPy功能都是基于ndarray来实现的。
创建ndarray
在Python中,我们可以使用NumPy库来创建ndarray对象。NumPy提供了许多创建ndarray的方法,下面介绍几种常用的方法。
使用Python列表创建ndarray
我们可以使用Python的列表(list)来创建ndarray对象。通过将列表传递给NumPy的array()函数,可以将列表转换为ndarray。
import numpy as np
# 创建一个一维数组
arr1 = np.array([1, 2, 3, 4, 5])
print(arr1)
# 输出:[1 2 3 4 5]
# 创建一个二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2)
# 输出:
# [[1 2 3]
#  [4 5 6]]
使用NumPy函数创建ndarray
除了使用Python列表,我们还可以使用NumPy提供的函数来创建ndarray对象。
zeros()函数
zeros()函数可以创建一个全为0的ndarray。我们可以指定数组的形状(维度),例如一维数组、二维数组等。
import numpy as np
# 创建一个一维数组,长度为5,元素全为0
arr1 = np.zeros(5)
print(arr1)
# 输出:[0. 0. 0. 0. 0.]
# 创建一个二维数组,形状为(2, 3),元素全为0
arr2 = np.zeros((2, 3))
print(arr2)
# 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]
ones()函数
ones()函数可以创建一个全为1的ndarray,用法与zeros()函数类似。
import numpy as np
# 创建一个一维数组,长度为5,元素全为1
arr1 = np.ones(5)
print(arr1)
# 输出:[1. 1. 1. 1. 1.]
# 创建一个二维数组,形状为(2, 3),元素全为1
arr2 = np.ones((2, 3))
print(arr2)
# 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]
arange()函数
arange()函数可以创建一个等差数列的ndarray。我们可以指定起始值、终止值和步长。
import numpy as np
# 创建一个一维数组,起始值为0,终止值为9(不包含),步长为1
arr1 = np.arange(0, 10, 1)
print(arr1)
# 输出:[0 1 2 3 4 5 6 7 8 9]
# 创建一个一维数组,起始值为0,终止值为1(不包含),步长为0.1
arr2 = np.arange(0, 1, 0.1)
print(arr2)
# 输出:[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
linspace()函数
linspace()函数可以创建一个等间距数列的ndarray。我们可以指定起始值、终止值和元素个数。
import numpy as np
# 创建一个一维数组,起始值为0,终止值为1,元素个数为5
arr1 = np.linspace(0, 1, 5)
print(arr1)
# 输出:[0.  0.25 0.5  0.75 1.  ]
# 创建一个一维数组,起始值为1,终止值为10,元素个数为10
arr2 = np.linspace(1, 10, 10)
print(arr2)
# 输出:[ 1.  2.  3.  4.  5.  6.  7.  8.  9. 10.]
使用随机数创建ndarray
NumPy还提供了一些函数来创建随机数的ndarray。这些函数可以用于模拟随机实验、生成随机样本等。
random()函数
random()函数可以创建一个指定形状的随机数ndarray,元素的取值范围在0到1之间。
import numpy as np
# 创建一个一维数组,形状为(5,),元素为0到1之间的随机数
arr1 = np.random.random(5)
print(arr1)
# 输出:[0.5488135  0.71518937 0.60276338 0.54488318 0.4236548 ]
# 创建一个二维数组,形状为(2, 3),元素为0到1之间的随机数
arr2 = np.random.random((2, 3))
print(arr2)
# 输出:
# [[0.64589411 0.43758721 0.891773  ]
#  [0.96366276 0.38344152 0.79172504]]
randint()函数
randint()函数可以创建一个指定范围内的随机整数ndarray。
import numpy as np
# 创建一个一维数组,形状为(5,),元素为1到10之间的随机整数
arr1 = np.random.randint(1, 10, 5)
print(arr1)
# 输出:[9 7 6 9 3]
# 创建一个二维数组,形状为(2, 3),元素为1到10之间的随机整数
arr2 = np.random.randint(1, 10, (2, 3))
print(arr2)
# 输出:
# [[2 7 3]
#  [9 1 8]]
ndarray的属性和方法
ndarray对象具有许多属性和方法,可以用于获取数组的信息、进行数值计算和操作。
属性
ndim属性
ndim属性用于获取数组的维度(即数组的轴数)。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.ndim)
# 输出:2
shape属性
shape属性用于获取数组的形状(即数组的维度大小)。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape)
# 输出:(2, 3)
size属性
size属性用于获取数组的元素个数。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.size)
# 输出:6
dtype属性
dtype属性用于获取数组的数据类型。
import numpy as np
arr = np.array([[1linspace numpy, 2, 3], [4, 5, 6]])
print(arr.dtype)
# 输出:int64
方法
reshape()方法
reshape()方法用于改变数组的形状。
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
new_arr = shape((2, 3))
print(new_arr)
# 输出:
# [[1 2 3]
#  [4 5 6]]
flatten()方法
flatten()方法用于将多维数组转换为一维数组。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
new_arr = arr.flatten()
print(new_arr)
# 输出:[1 2 3 4 5 6]
transpose()方法
transpose()方法用于交换数组的维度。
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。