Numpy 基础

本文介绍了NumPy库的基础用法,包括创建ndarray、查看形状和维数、指定数据类型、生成特定数组、数组形状修改、类型转换、数组去重以及数据计算等操作。通过实例展示了如何进行矩阵运算、数组比较和文件读写,是学习NumPy的入门指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NumPy 提供了一个N 维数组类型 ndarray,它描述了相同类型的 items 的集合。

import numpy as np

# 创建ndarray
score = np.array([[80, 89, 86, 67, 79],[78, 97, 89, 67, 81]])

# 打印结果
score

输出:
array([[80, 89, 86, 67, 79],
[78, 97, 89, 67, 81]])
在这里插入图片描述

import numpy as np

# 创建不同形状的数组
a = np.array([[1, 2, 3],[4, 5, 6]])
b = np.array([1, 2, 3, 4])
c = np.array([[[1, 2, 3],[4, 5, 6]],[[1, 2, 3],[4, 5, 6.0]]])

# 分别打印出形状
print(a.shape)
print(b.shape)
print(c.shape)

输出:
(2, 3)
(4,)
(2, 2, 3)

import numpy as np

# 创建不同形状的数组
a = np.array([[1, 2, 3],[4, 5, 6]])
b = np.array([1, 2, 3, 4])
c = np.array([[[1, 2, 3],[4, 5, 6]],[[1, 2, 3],[4, 5, 6.0]]])

# 分别打印出维数
print(a.ndim)
print(b.ndim)
print(c.ndim)

输出:
2
1
3
ndarray 的类型:
在这里插入图片描述

import numpy as np

# 创建数组时指定类型为 np.float32
a = np.array([[1, 2, 3],[4, 5, 6]], dtype=np.float32)

# 创建数组时未指定类型
b = np.array([[1, 2, 3],[4, 5, 6]])

# 打印结果
print("数组a:\n%s,\n数据类型:%s"%(a,a.dtype))
print("数组b:\n%s,\n数据类型:%s"%(b,b.dtype))

生成全部元素值为 0 的数组

import numpy as np

zero = np.zeros([3, 4])
zero

生成全部元素值为 1 的数组

one = np.ones([3, 4])
one

生成对角数组(对角线的地方是 1,其余地方是 0)

eyes = np.eye(10, 5)
eyes

生成固定范围的数组

# 生成等间隔的数组
a = np.linspace(0, 90, 10)
a

# 生成等间隔的数组
b = np.arange(0, 90, 10)
b

形状修改

from numpy import array
a = array([[ 0, 1, 2, 3, 4, 5],
           [10,11,12,13,14,15],
           [20,21,22,23,24,25],
           [30,31,32,33,34,35]])
a.shape

# 在转换形状的时候,一定要注意数组的元素匹配
# 只是将形状进行了修改,但并没有将行列进行转换
b = a.reshape([3, 8])
b

# 数组的形状被修改为: (2, 12), -1: 表示同过自动计算得到此处的值
c = a.reshape([-1, 12])
c

d = a.T
d.shape

类型修改

arr = np.array([[[1, 2, 3], [4, 5, 6]], [[12, 3, 34], [5, 6, 7]]])
arr.dtype

arr.astype(np.float32)

数组去重

arr = np.array([[1, 2, 3, 4],[3, 4, 5, 6]])
np.unique(arr)

数据计算在这里插入图片描述
函数还可以接受第三个参数,表示将结果存入第三个参数中:

np.multiply(a, b, a)

矩阵
使用 mat 方法将 2 维数组转化为矩阵:

import numpy as np
a = np.array([[1, 2, 4],
              [2, 5, 3],
              [7, 8, 9]])
A = np.mat(a)
A

# 也可以使用 **Matlab** 的语法传入一个字符串来生成矩阵:
A = np.mat('1,2,4;2,5,3;7,8,9')
A

A.I 表示 A 矩阵的逆矩阵
在这里插入图片描述
指定求和的维度: 沿着第一维求和

from numpy import array
a = array([[1, 2, 3],
           [4, 5, 6]])
a
np.sum(a, axis=0)

输出:array([5, 7, 9])
沿着第二维求和:

np.sum(a, axis=1)
a.sum(axis=1)

输出:array([ 6, 15])
在这里插入图片描述
数组元素的比对,我们可以直接使用运算符进行比较,比如判断数组中元素是否大于某个数:

from numpy import array
a = array([[ 0, 1, 2, 3, 4, 5],
           [10,11,12,13,14,15],
           [20,21,22,23,24,25],
           [30,31,32,33,34,35]])

a > 10

# 判断数组中元素大于10的元素赋值为 -10 
a[a > 10] = -10
a

但是当数组元素较多时,查看输出结果便变得很麻烦,这时我们可以使用all()方法,直接比对矩阵的所有对应的元素是否满足条件。假如判断某个区间的值是否全是大于 20:

from numpy import array
a = array([[ 0, 1, 2, 3, 4, 5],
           [10,11,12,13,14,15],
           [20,21,22,23,24,25],
           [30,31,32,33,34,35]])

a[1:3,1:3]

输出:
array([[11, 12],
[21, 22]])

np.all(a[1:3,1:3] > 20)

#使用 any() 来判断数组某个区间的元素是否存在大于 20的元素:
np.any(a[1:3,1:3] > 20)

savetxt 可以将数组写入文件,默认使用科学计数法的形式保存:

import numpy as np

data = np.array([[1, 2],
                 [3, 4]])

# 保存文件
np.savetxt('out.txt', data)
# 读取文件
np.loadtxt('out.txt')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值