0


NumPy模块——数组的创建与使用

NumPy模块中一维数组和列表有相似之处,本文主要以列表与之作对比来讲解数组的概念。

1.数组创建

演示代码如下:

import numpy as np
a = [1, 2, 3, 4]
b = np.array([1, 2, 3, 4]) # 创建数组,array就是数组的意思
print(a) 
print(b) 
print(type(a)) 
print(type(b))

输出结果为:

[1, 2, 3, 4] 
[1 2 3 4] 
<class 'list'> 
<class 'numpy.ndarray'> # 变量b的数据类型为数组

可以看到,在表现形式上,列表元素之间有逗号,而数组各元素之间是空格。

**2.**数组中的元素提取

数组中的单个元素提取和切片提取方法与列表是相同的,在上面打代码基础上执行如下代码:

print(a[1])
print(b[2])
print(a[0:2])
print(b[0:2])

输出结果为:

2   
2   
[1,2]
[1 2]

可以看到,不管是数组还是列表,在进行切片的时候都是遵循“左闭右开”的规则。

**3.**数组和列表的区别

(1)数组可以很好的支持数学运算,而列表在这方面则显得麻烦不方便。

演示代码如下:

import numpy as np
a = [1, 2, 3, 4]
b = np.array([1, 2, 3, 4])
c=a*2
d=b*2
print(c)
print(d)

运行结果如下:

[1, 2, 3, 4, 1, 2, 3, 4]
[2 4 6 8]

可以看到,同样是做乘法运算,列表是把元素复制了一遍,而数组则是对每个元素都进行了乘法运算。

(2)数组可以存储多维数据,而列表只能存储一维数据。演示代码如下:

import numpy as np
e = [[1, 2], [3, 4], [5, 6]] 
f = np.array([[1, 2], [3, 4], [5, 6]]) 
print(e)
print(f)

运行结果如下:

[[1, 2], [3, 4], [5, 6]] 
[[1 2]
[3 4]
[5 6]]

可以看到,列表e尽管进行了嵌套,但归根到底其结构仍然是一维的(每个元素列表仍为一维),而数组f则是3行2列的二维结构。

4.数组的创建方式

对于一维数组:

(1)np.array方式

演示代码如下:

import numpy as np
# 创建一维数组
a = np.array([1, 2, 3, 4])
# 创建二维数组
b = np.array([[1, 2], [3, 4], [5, 6]])     #这种方式也可以创建二维数组

(2)np.arange()方式

该函数的括号里可以输入1~3个参数,会得到不同的效果。演示代码如下:

import numpy as np
# 1个参数:起点取默认值0,参数值为终点,步长取默认值1,左闭右开
a = np.arange(5)
# 2个参数:第1个参数为起点,第2个参数为终点,步长取默认值1,左闭右开
b = np.arange(5, 10)
# 3个参数:第1个参数为起点,第2个参数为终点,第3个参数为步长,左闭右开
c= np.arange(5, 10, 2)
print(a)
print(b)
print(c)

运行结果如下:

[0 1 2 3 4]
[5 6 7 8 9]
[5 7 9]

(3)np.random方式

演示代码如下:

import numpy as np
c = np.random.randn(3)
print(c)

运行结果如下:

[ 0.74531674 -0.21140738  1.89103721]  #包含服从正态分布的3个随机数

对于二维数组:

  1. 利用np.arange()函数和np.random函数结合reshape()函数即可创建

演示代码如下:

import numpy as np
a = np.arange(12).reshape(3, 4)
print(a)

运行结果如下:

[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]

读者可以尝试一下np.arange()函数多个参数下的reshape()方法和np.random函数,以加深理解,这里不再过多展示了。

(2)随机整数创建方法

演示代码如下:

import numpy as np
a = np.random.randint(0, 10, (3, 3)) #创建随机整数数组,0为起始数,10 为终止数,(4,4)则表示创建一个3行3列的二维数组。
print(a)

运行结果如下:

[[6 7 9]
 [1 4 4]
 [6 9 8]]

好啦,今日份学习笔记就到这里了!有看不懂的小伙伴可以留言咨询哦!


本文转载自: https://blog.csdn.net/weixin_63367994/article/details/127166442
版权归原作者 碧空长_海苍茫 所有, 如有侵权,请联系我们删除。

“NumPy模块&mdash;&mdash;数组的创建与使用”的评论:

还没有评论