numpy学习(一):numpy基础

此文为学习 理解NumpyNumPy简单入门教程整理的学习笔记

NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。

NumPy这个词来源于两个单词-- Numerical和Python。

一、numpy数组创建

  • 通过np.array()函数填入list,tuple等,多维数组可填入list的list,tuple的tuple
a = np.array([0, 1, 2, 3, 4])

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

b = np.array((0, 1, 2, 3, 4))

b=np.array(((0,1,2,3,4),(1,2,3,4,5)))
  • 通过numpy自带函数创建,如np.arrange(),np.zreos(),np.ones(),np.random.random()
c = np.arange(5)               #[0 1 2 3 4]

d = np.linspace(0, 2*np.pi, 5)#[ 0.          1.57079633  3.14159265  4.71238898  6.28318531]

e=np.zeros(5)

e=np.zeros(5,6)

f=np.ones(5)

f=np.ones(5,6)

a = np.arange(25)

a = a.reshape((5, 5))

二、numpy数组访问

  • 通过索引访问单个数组元素
a=np.array([[0,1,2,3,4],[1,2,3,4,5]])

a[1][1]和a[1,1]效果是一样的,都是得到2

  • 通过切片操作访问多个元素
a=np.array([[0,1,2,3,4],[1,2,3,4,5]])

a[0,1:4]和a[0][1:4]效果一样,都是得到[2 3 4]

 三、numpy数组运算

除了 dot() 之外,这些操作符都是对数组进行逐元素运算

dot() 函数才是计算矩阵乘法

a = np.array([[1.0, 2.0], [3.0, 4.0]])

b = np.array([[5.0, 6.0], [7.0, 8.0]])

print(a + b)

[[ 6.  8.]

 [10. 12.]]

print(a - b)

[[-4. -4.]

 [-4. -4.]]

print(a * b)

[[ 5. 12.]

 [21. 32.]]

print(a / b)

[[0.2        0.33333333]

 [0.42857143 0.5       ]]

print(a ** 2)

[[ 1.  4.]

 [ 9. 16.]]

print(a < b)

[[ True  True]

 [ True  True]]

print(a > b)

[[False False]

 [False False]]

print(a.dot(b))

[[19. 22.]

 [43. 50.]]

四、 numpy数组条件筛选

ps:类似于list的列表生成式

  • 给定索引数组来筛选
a = np.arange(0, 100, 10)

indices = [1, 5, -1]#此处的list数组换成numpy数组也是一样的

b = a[indices]

print(a) # >>>[ 0 10 20 30 40 50 60 70 80 90]

print(b) # >>>[10 50 90]
  • 根据指定的条件检索数组中的元素
a = np.arange(0, 100, 10)

mask = a<50

print(mask)#>>>[ True  True  True  True  True False False False False False]

print(type(mask))#<class 'numpy.ndarray'>

print(a[mask])#>>>[ 0 10 20 30 40]
  • where()函数
a = np.arange(0, 100, 10)

b=np.where(a<50)

print(b)#(array([0, 1, 2, 3, 4], dtype=int64),)

print(type(b))#<class 'tuple'>

print(b[0])#[0 1 2 3 4]

print(type(b[0]))#<class 'numpy.ndarray'>

print(a[b[0]])#[ 0 10 20 30 40]
#根据条件赋值
b = np.where(a<50,a,100)#若小于50保持原值,否则,赋值为100

print(b)#[  0  10  20  30  40 100 100 100 100 100]

五、numpy数组中值的替换

根据条件筛选出待替换元素,并赋值

a=np.array([1,2,3,4,5,6,7,8,9])
print(a)#[1 2 3 4 5 6 7 8 9]
a[a>5]=111
print(a)#[  1   2   3   4   5 111 111 111 111]
发布了62 篇原创文章 · 获赞 118 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_38412868/article/details/97982453
今日推荐