Python ndarray类型存储
在Python中,ndarray
(N-dimensional array)是一个重要的数据类型,它是NumPy库的关键组成部分。ndarray
是一个多维数组对象,用于存储同类型的数据元素,可以是整数、浮点数、布尔值等等。ndarray
对象在内存中被连续存储,由于其高效的存储和操作方式,使得NumPy成为Python科学计算的重要工具。
创建ndarray
我们可以使用numpy.array()
函数创建一个ndarray
对象。下面是一个简单的示例:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)
输出结果为:
[1 2 3 4 5]
这里我们使用numpy.array()
函数将一个列表转换为ndarray
对象,并将其赋值给变量arr
。ndarray
对象在输出时会以一行的形式展示,每个元素之间用空格分隔。
我们也可以创建多维的ndarray
对象。下面是一个二维数组的示例:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
输出结果为:
[[1 2 3]
[4 5 6]]
ndarray
的属性
ndarray
对象有一些重要的属性,可以帮助我们了解数组的维度、形状和数据类型。
ndarray.shape
:返回表示数组维度的元组。例如,对于一个二维数组,返回的元组为(行数, 列数)
。ndarray.ndim
:返回数组的维度数。ndarray.size
:返回数组中元素的总数。ndarray.dtype
:返回数组中元素的数据类型。
下面是一个示例,展示如何使用这些属性:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print("Shape:", arr.shape)
print("Dimensions:", arr.ndim)
print("Size:", arr.size)
print("Data Type:", arr.dtype)
输出结果为:
Shape: (2, 3)
Dimensions: 2
Size: 6
Data Type: int64
ndarray
的索引和切片
我们可以使用索引和切片的方式访问ndarray
对象中的元素。对于二维数组,我们可以使用行和列的索引来访问特定的元素。下面是一个示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr[0, 1]) # 访问第一行第二列的元素
print(arr[:, 2]) # 访问所有行的第三列元素
输出结果为:
2
[3 6]
ndarray
的操作
ndarray
对象支持各种数学和逻辑运算,例如加法、减法、乘法和除法等。这些操作可以逐元素地应用于数组中的元素,或者作用于整个数组。
下面是一些示例:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 数组加法
result = arr1 + arr2
print("Addition:", result)
# 数组乘法
result = arr1 * arr2
print("Multiplication:", result)
# 数组开方
result = np.sqrt(arr1)
print("Square Root:", result)
# 数组求和
result = np.sum(arr1)
print("Sum:", result)
# 数组排序
result = np.sort(arr2)
print("Sorted Array:", result)
输出结果为:
Addition: [5 7 9]
Multiplication: [ 4 10 18]
Square Root: [1. 1.41421356 1.73205081]
Sum: 6
Sorted Array: [4 5 6]
ndarray
的存储
ndarray
对象在内存中以连续的方式存储数据。在多维数组中,数据元素被按行存储,即每一行的元素在内存中是连续的