Numpy基本使用

本文详细介绍NumPy库的基本使用方法,包括数组的创建、属性、索引及切片操作等内容,并通过实战演示帮助读者掌握关键技能。

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

目录

1.初始numpy

#列表的缺点
a=[1,2,3]
# a+1 报错
b=[i+1 for i in a]
print(b) #[2, 3, 4]

#想要列表完成a+b的运算操作
a=[1,2,3]
b=[2,3,4]
c=[x+y for (x,y) in zip(a,b)]
print(c) #[3, 5, 7]

#引入numpy计算
import numpy as np

a=np.array([1,2,3,4])
print(a+1) #[2 3 4 5]

列表在进行运算操作时是过于繁琐的,而用过numpy可以使运算更加方便快捷

2.产生数组

import numpy as np

#1.从列表产生数组
list1=[0,1,2,3]
a=np.array(list1)
print(a) #[0 1 2 3]

#2.生成全0数组
a=np.zeros(5)
print(a) #[0. 0. 0. 0. 0.]

#3.生成全1数组
a=np.ones(5,dtype='int')
print(a) #[1 1 1 1 1]

#4.可以使用fill方法将数组设为指定值
a=np.array([1,2,3,4,5])
print(a) #[1 2 3 4 5]
a.fill(5)
print(a) #[5 5 5 5 5]

#5.与列表不同,数组中要求所有元素的dtype是一样的,
#如果传入参数的类型和数组的类型不一样,需要按照已有的类型进行转换
a=np.array([1,2,3,4,5])
a.fill(2.8)
print(a) #向下取整 [2 2 2 2 2]
b=a.astype('float')
b.fill(2.8)
print(b) #[2.8 2.8 2.8 2.8 2.8]

#6.生成整数序列 左闭右开
a=np.arange(1,10)
print(a) #[1 2 3 4 5 6 7 8 9]
a=np.arange(1,10,2)
print(a) #[1 3 5 7 9]

#7.生成等差数列 左闭右闭
a=np.linspace(1,10,21) #第三个参数代表元素的个数
print(a)
#[ 1.    1.45  1.9   2.35  2.8   3.25  3.7   4.15  4.6   #5.05  5.5   5.95
#  6.4   6.85  7.3   7.75  8.2   8.65  9.1   9.55 10.  ]

#8.生成随机数 返回一个0~1但不包括1的随机数
a=np.random.rand(10) #元素个数
print(a) 
#[0.40468317 0.51145897 0.91864091 0.02519811 0.3705643  #0.07932932
#0.23581236 0.91098156 0.41299108 0.88353082]
a=np.random.randint(1,10,20) #(begin,end,个数)
print(a)
#[9 2 6 4 5 1 9 7 2 3 6 8 5 7 6 2 4 5 7 7]

3.数组属性

import numpy as np

a=np.random.rand(10)

#1.查看类型
print(type(a)) #<class 'numpy.ndarray'>

#2.查看数组中的数据类型
print(a.dtype) #float64

#3.查看形状,会返回一个元组,每个元素代表这一维的元素数目
print(a.shape) #(10,)

#4.查看数组里面元素的数目
print(a.size) #10

#5.查看数组的维度
print(a.ndim) #1

a.shape返回的是(10,)表示的是一个一维数组,这个一维数组有10个元素;二维数组返回的是(num1,num2)表示的是几行几列

4.索引与切片

import numpy as np

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

#1.索引第一个元素
print(a[0]) #1

#2.修改第一个元素的值
a[0]=10
print(a) #[10  2  3  4  5  6]
a[0]=1

#切片 支持负索引
print(a[1:3]) #[2 3]
print(a[1:-2]) #[2 3 4]

5.实战演示

#问:一部电影的累计票房是21000,21800,22240,23450,25000
#求:每日电影票房

#解析:后一天的票房减去前一天的票房就是当日票房

import numpy as np

ob=np.array([21000,21800,22240,23450,25000])
ob2=ob[1:]-ob[:-1]
print(ob2) #[ 800  440 1210 1550]

6.多维数组及其属性

import numpy as np

#1.生成多维数组
a=np.array([[0,1,2,3],[10,11,12,13]]) #传入的是一个以列表为元素的列表
print(a) 
#[[ 0  1  2  3]
# [10 11 12 13]]

#2.查看形状
print(a.shape) 
# (2, 4)代表两行四列

#3.查看总的元素个数
print(a.size) #8

#4.查看维度
print(a.ndim) #2

7.多维数组索引

import numpy as np

a=np.array([[0,1,2,3],[10,11,12,13]])

#1.a[行索引,列索引]
print(a[1,3]) #13

#2.单个索引来索引一整行内容
print(a[1]) #[10 11 12 13]

#3.
print(a[:,1]) #[ 1 11]

8.多维数组切片

import numpy as np

a=np.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],
            [40,41,42,43,44,45],[50,51,52,53,54,55]])

#每一维都支持切片的规则,包括负索引,省略:[lower:upper:step]

#1.得到第一行的第4和第5两个元素
print(a[0,3:5]) #[3 4]

#2.得到最后两行的最后两列
print(a[4:,4:]) 
#[[44 45]
# [54 55]]

#3.得到第三列
print(a[:,2]) #[ 2 12 22 32 42 52]

#4.取出第3行和第5行的奇数列(第1列,第3列,第5列)
print(a[2::2,::2])
#[[20 22 24]
# [40 42 44]]

9.切片实质

import numpy as np

'''
切片是引用
切片在内存中使用的是引用机制
'''

#1.
a=np.array([0,1,2,3,4])
b=a[2:4]
# print(b) #[2 3]
b[0]=10
# print(a) #原来的2变为了10

'''
① 引用机制意味着python并没有为b分配新的空间来存储它的值,而是让b
指向了a所分配的内存空间。因此改变b会改变a的值
② 列表当中是不会出现这种现象的
'''

#2.copy()
a=np.array([0,1,2,3,4])
b=a.copy()
b[0]=10
print(a) #[0 1 2 3 4]
print(b) #[10  1  2  3  4]

10.一维花式索引

11.二维花式索引

12.不完全索引

13.where语句

14.数据类型转换

15.实战演示

### NumPy基本使用方法 NumPyPython 中用于科学计算的核心库,提供了强大的多维数组对象以及一系列派生的对象(如掩码数组和矩阵)。以下是关于 NumPy 基本使用的详细介绍。 #### 导入 NumPy 库 每次使用 NumPy 进行操作前,都需要先导入该库。通常会将其重命名为 `np` 以便于后续调用[^2]。 ```python import numpy as np ``` #### 创建数组 可以通过多种方式创建 NumPy 数组。最常见的方式是通过列表转换或者直接定义范围内的数值。 ##### 使用 `array()` 方法 可以直接将 Python 列表转化为 NumPy 数组。 ```python arr = np.array([1, 2, 3, 4]) print(arr) # 输出: [1 2 3 4] ``` 此方法适用于已知具体数据的情况[^1]。 ##### 使用 `arange()` 函数 如果需要生成一定范围内的连续整数序列,则可以使用 `np.arange(start, stop, step)` 函数[^3]。 ```python numbers = np.arange(0, 10, 2) print(numbers) # 输出: [0 2 4 6 8] ``` #### 数据类型设置 在创建数组时还可以指定其内部存储的数据类型 (dtype),这有助于优化内存占用并提高运算效率。 ```python float_array = np.array([1, 2, 3], dtype=np.float64) print(float_array.dtype) # 输出: float64 ``` #### 矩阵运算 除了基础的一维向量外,NumPy 支持更高维度的张量结构,并支持线性代数中的各种运算。 ```python matrix_a = np.array([[1, 2], [3, 4]]) matrix_b = np.array([[5, 6], [7, 8]]) addition_result = matrix_a + matrix_b multiplication_result = np.dot(matrix_a, matrix_b) print(addition_result) # 输出加法结果 print(multiplication_result) # 输出乘积结果 ``` 以上展示了如何利用 NumPy 实现简单的数学运算功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值