1. ndim
首先来看一下ndim的用法。在NumPy中,ndarray对象的ndim属性表示数组的维度(即数组的轴数)。具体而言,它返回数组的轴数,即维度的数量。
Example:
import numpy as np
arr1 = np.array([1, 2, 3])
print(arr1.ndim) # 输出1,表示一维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])
print(arr2.ndim) # 输出2,表示二维数组
从上面的例子可以看出,arr1是一个一维数组,而arr2是一个二维数组,因此它们的ndim属性分别返回了1和2。
2. shape
shape属性用于获取数组的形状,即数组在各个维度的大小。它返回一个元组,其中的每个元素表示数组在相应维度上的大小。
Example:
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr.shape) # 输出(2, 3),表示二维数组,第一维大小为2,第二维大小为3
在上面的例子中,arr是一个形状为(2, 3)的二维数组,即它有2行3列。通过shape属性获取到的形状为一个元组(2, 3)。
3. dtype
dtype属性用于获取数组的数据类型。在NumPy中,数组的数据类型可以是整数、浮点数、复数、布尔值等。NumPy提供了多种数据类型供用户选择。
Example:
arr = np.array([1, 2, 3])
print(arr.dtype) # 输出int64,表示数组的数据类型为64位整数
arr = np.array([1.5, 2.3, 3.7])
print(arr.dtype) # 输出float64,表示数组的数据类型为64位浮点数
arr = np.array(["apple", "banana", "orange"])
print(arr.dtype) # 输出<U6,表示数组的数据类型为Unicode字符串,每个字符串的最大长度为6
在上面的例子中,arr1的数据类型是64位整数,arr2的数据类型是64位浮点数,arr3的数据类型是Unicode字符串。
4. astype
astype方法用于改变数组的数据类型。它接受一个参数,即要转换的目标数据类型。它返回一个新的数组,该数组的元素类型被更改为目标数据类型。
Example:
arr = np.array([1, 2, 3])
new_arr = arr.astype(float)
print(new_arr) # 输出[1. 2. 3.],表示将arr转换为浮点数类型的数组
arr = np.array([1.5, 2.3, 3.7])
new_arr = arr.astype(int)
print(new_arr) # 输出[1 2 3],表示将arr转换为整数类型的数组
在上面的例子中,arr1是一个整数类型的数组,通过astype方法将其转换为浮点数类型的数组new_arr。arr2是一个浮点数类型的数组,通过astype方法将其转换为整数类型的数组new_arr。
需要注意的是,astype方法返回的是一个新的数组,原数组并未被修改。
总结
在本文中,我们详细介绍了NumPy中ndim、shape、dtype和astype的用法。
ndim属性用于获取数组的维度,返回数组的轴数。
shape属性用于获取数组的形状,返回一个元组,其中的每个元素表示数组在相应维度上的大小。
dtype属性用于获取数组的数据类型,返回数组的数据类型。
astype方法用于改变数组的数据类型,返回一个新的数组。