1.numpy数组的创建和读取保存

学习笔记:Python数据分析


前言

        NumPy 通过高效的数据结构和算法,成为 Python 科学计算的基石。其核心价值在于简化大规模数值操作的代码复杂度大幅提升计算性能,无论是数据分析师、机器学习工程师还是科研人员,掌握 NumPy 都是进阶的必经之路。


一、Numpy是什么?

        NumPy(Numerical Python)是 Python 的一个开源库,专为高效处理大型多维数组和矩阵计算而设计。它是 Python 科学计算生态系统的核心,提供了高性能的数据结构、数学函数和工具,广泛应用于数据分析、机器学习、图像处理、科学计算等领域。

二、基础操作

1.jupyter常见操作

单元格外观控制:

        1.用工具栏移动
        2.双击折叠out框
        3.单击恢复out框
        4.可以剪切单元格

改变文件目录:

        1.运行cmd 输入:jupyter notebook --generate-config
        2.找到生成的config.py文件
        3.用记事本打开修改 notebook_dir 加入路径重新打开即可

2.数据处理

代码如下(示例1):

x = list(range(-5,6))
y=[i*i for i in x]
print(x)
print(y)

输出:

[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
[25, 16, 9, 4, 1, 0, 1, 4, 9, 16, 25]

代码如下(示例2):

import matplotlib.pyplot as plt
plt.plot(x,y)

输出:

3.魔法命令

     以%或%%开头的特殊命令,控制Jupyter提供各种辅助开发和计算的特殊功能
     该类命令不是Python标准语法,只能在Jupyter中运行
      一个%的指令只对一行代码起作用
     两个%的指令对本单元格全部代码起作用

%%time  查看运行时间

代码如下(示例3):

%%time
i= 1
for a in range(100000):
    for b in range(1000):
        i=i+1
print(i)

输出程序运行结果和时间:

%who    查看定义的变量名称

代码如下(示例4):

%who

输出结果:

a     b     i     plt     x     y

三、numpy创建NDArray数组

1.从列表生成数组

numpy.array(列表)

import numpy as np
list1=[1,2,3]
df=np.array(list1)
df

输出结果:

        array([1, 2, 3])

df.dtype

输出结果:

        dtype('int32')

如果表中有多种类型则会执行强制转换

list3=[1,2,3.5,'sss']
df3=np.array(list3)
df3

输出结果:

       array(['1', '2', '3.5', 'sss'], dtype='<U32')

向上兼容: 整数---->浮点数---->str等各类对象

2.创建NDArray数组

2.1用函数生成规律性数组

2.1.1.numpy.zeros

numpy.zeros() 是 NumPy 中用于创建指定形状和数据类型的数组,并用 零值 填充的函数。它是初始化数组的常用方法,尤其在需要预分配内存空间或创建基准值数组时非常实用。

核心语法

numpy.zeros(shape, dtype=float, order='C')
  • shape:数组的形状,可以是整数(如 3)或元组(如 (2, 3))。
  • dtype(可选):数组的数据类型,默认是 float64
  • order(可选):内存布局方式,'C' 表示行优先(C 风格),'F' 表示列优先(Fortran 风格)。

1. 创建一维数组

import numpy as np

# 创建长度为5的一维数组,元素全为0(默认float类型)
arr1 = np.zeros(5)
print(arr1)  # 输出: [0. 0. 0. 0. 0.]
print(arr1.dtype)  # 输出: float64

2. 创建多维数组

# 创建2行3列的二维数组(全0矩阵)
arr2 = np.zeros((2, 3))
print(arr2)
# 输出:
# [[0. 0. 0.]
#  [0. 0. 0.]]

# 创建3维数组(2层,每层2行3列)
arr3 = np.zeros((2, 2, 3))
print(arr3.shape)  # 输出: (2, 2, 3)

3. 指定数据类型

# 创建整数类型的数组
arr_int = np.zeros(3, dtype=int)
print(arr_int)  # 输出: [0 0 0]
print(arr_int.dtype)  # 输出: int64

# 创建布尔类型的数组(0对应False)
arr_bool = np.zeros(2, dtype=bool)
print(arr_bool)  # 输出: [False False]

4. 与其他数组保持相同形状

# 假设有一个已有数组
existing_arr = np.array([[1, 2], [3, 4]])

# 创建与existing_arr形状相同的全0数组
zeros_like = np.zeros_like(existing_arr)
print(zeros_like)
# 输出:
# [[0 0]
#  [0 0]]

应用场景

1.初始化累加器
在数值计算中,常用于初始化累加数组,例如:

result = np.zeros(10)  # 初始化结果数组
for i in range(10):
    result[i] = i * 2

2.作为占位符
在深度学习中,用于创建批量输入数据的占位符:

batch_input = np.zeros((32, 224, 224, 3))  # 32张224×224的RGB图像

3.构建稀疏矩阵
先创建全 0 矩阵,再填充非零值:

matrix = np.zeros((1000, 1000))
matrix[0, 0] = 1  # 在特定位置赋值

2.1.2.numpy.ones

   numpy.ones() 是 NumPy 中用于创建指定形状和数据类型的数组,并用 1 值 填充的函数。它与 numpy.zeros() 类似,但初始值为 1,常用于初始化权重矩阵、计数数组或基准值数组。

核心语法

numpy.ones(shape, dtype=float, order='C')
  • shape:数组的形状,可以是整数(如 3)或元组(如 (2, 3))。
  • dtype(可选):数组的数据类型,默认是 float64
  • order(可选):内存布局方式,'C' 表示行优先(C 风格),'F' 表示列优先(Fortran 风格)。

1. 创建一维数组

import numpy as np

# 创建长度为5的一维数组,元素全为1(默认float类型)
arr1 = np.ones(5)
print(arr1)  # 输出: [1. 1. 1. 1. 1.]
print(arr1.dtype)  # 输出: float64

2. 创建多维数组

# 创建2行3列的二维数组(全1矩阵)
arr2 = np.ones((2, 3))
print(arr2)
# 输出:
# [[1. 1. 1.]
#  [1. 1. 1.]]

# 创建3维数组(2层,每层2行3列)
arr3 = np.ones((2, 2, 3))
print(arr3.shape)  # 输出: (2, 2, 3)

3. 指定数据类型

# 创建整数类型的数组
arr_int = np.ones(3, dtype=int)
print(arr_int)  # 输出: [1 1 1]
print(arr_int.dtype)  # 输出: int64

# 创建布尔类型的数组(1对应True)
arr_bool = np.ones(2, dtype=bool)
print(arr_bool)  # 输出: [True True]

4. 与其他数组保持相同形状

# 假设有一个已有数组
existing_arr = np.array([[1, 2], [3, 4]])

# 创建与existing_arr形状相同的全1数组
ones_like = np.ones_like(exi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寄思~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值