本文系统讲解NumPy数组的核心操作,涵盖五大创建方法(np.array()、np.zeros()等)、关键属性(shape、dtype等)及数据类型转换(astype()),通过代码示例演示如何高效构建和操作多维数组。适合Python数据科学初学者。
1 创建数组
import numpy as np
np.array():从Python列表/元组创建数组
# 从列表创建一维数组
arr1 = np.array([1, 2, 3, 4])
print(arr1) # 从嵌套列表创建二维数组
arr2 = np.array([[1, 2], [3, 4]])
print(arr2) # 注意:所有元素类型必须一致,否则会自动转换
mixed_arr = np.array([1, 2.5, "3"]) # 转换为字符串类型
print(mixed_arr.dtype)
[1 2 3 4]
[[1 2][3 4]]
<U32
np.zeros():创建全零数组
# 创建一维全零数组(默认float类型)
zero_1d = np.zeros(3)
print(zero_1d) # 输出: [0. 0. 0.]# 创建3x2全零数组(指定int类型)
zero_2d = np.zeros((3, 2), dtype=int)
print(zero_2d)
[0. 0. 0.]
[[0 0][0 0][0 0]]
np.ones():创建全一数组
# 创建2x3全一数组(默认float类型)
ones_2d = np.ones((2, 3))
print(ones_2d)
[[1. 1. 1.][1. 1. 1.]]
np.arange():创建等差序列数组
# 类似Python的range,但返回数组
arr = np.arange(0, 10, 2) # 起始0,终止10(不含),步长2
print(arr) # 浮点数步长(可能因精度问题出现误差)
arr_float = np.arange(0, 1, 0.3)
print(arr_float)
[0 2 4 6 8]
[0. 0.3 0.6 0.9]
np.linspace():创建等间隔数组
# 生成0到1之间的5个等间隔数(包含终点)
lin_arr = np.linspace(0, 1, 5)
print(lin_arr) # 示例:生成正弦函数采样点,可用于绘制连续曲线
x = np.linspace(0, 2*np.pi, 100)
[0. 0.25 0.5 0.75 1. ]
2 数组属性
shape:数组维度
arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr.shape)
(3, 2)
dtype:数据类型
print(arr.dtype) # (默认整数类型)
float_arr = np.array([1.1, 2.2])
print(float_arr.dtype)
int64
float64
ndim:轴数(维度数)
print(arr.ndim) # 二维数组
scalar = np.array(5)
print(scalar.ndim) # 标量
2
0
size:元素总数
print(arr.size) # 3x2=6个元素
6
3 数据类型转换astype()
# 将整数数组转换为浮点数
int_arr = np.array([1, 2, 3])
float_arr = int_arr.astype(np.float32)
print(float_arr) # 将浮点数转换为整数(截断小数)
float_arr = np.array([1.9, 2.5, 3.1])
int_arr = float_arr.astype(int)
print(int_arr) # 指定字符串类型
str_arr = int_arr.astype(str)
print(str_arr)
[1. 2. 3.]
[1 2 3]
['1' '2' '3']