NumPy入门系列①:数组创建与类型转换完全指南

2026-02-14 07:26:14   世界杯中国广告

本文系统讲解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]]

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']

本文来自博客园,作者:ffff5,转载请注明原文链接:https://www.cnblogs.com/ffff5/p/18792493

发那科系统用什么编程软件
知乎上,明粉都这么猖獗的吗?震惊了