2020-10-7调用测试numpy,描述矩阵的基本属性 numpy如何创建矩阵和数组 numpy的基础运算 numpy如何根据位置找到值 numpy的array合并

本文详细介绍了numpy库在Python中的使用,包括创建一维和二维数组,矩阵的基本属性如维度、形状和大小,以及矩阵的运算如加法、乘法和三角函数。此外,还讲解了如何根据位置查找值,如何合并数组,以及运用reshape、argmin、argmax等函数。内容涵盖了numpy的基础操作和常见应用。
摘要由CSDN通过智能技术生成

numpy学习

#调用测试numpy,描述矩阵的基本属性

下面是Demo

import numpy as np
array=np.array([[1,2,3],
               [2,3,4]])
print(array)
print('number of dim:',array.ndim)
print('shape:',array.shape)
print('size',array.size)
#结果
[[1 2 3]
 [2 3 4]]
number of dim: 2
shape: (2, 3)
size 6
numpy如何创建矩阵和数组

array的创建:分一维和二维
dtype类型
zeros的创建
生成线段linspace
下面是Demo

#array的一维的创建
import numpy as np
a=np.array([2,23,4],dtype=np.int)
print(a.dtype)
#结果
int32
#array二维的创建
import numpy as np
a=np.array([[2,23,4],
            [2,32,4]])
print(a)
#结果
[[ 2 23  4]
 [ 2 32  4]]

#打印出类型
import numpy as np
a=np.array([2,23,4],dtype=np.float32)
print(a.dtype)
#结果
float32
#zeros的创建
import numpy as np
a=np.zeros((3,4))
print(a)
#结果
[[0. 0. 0. 0.]
 [0. 0. 0. 0.]
 [0. 0. 0. 0.]]

#生成有序矩阵
import numpy as np
a=np.arange(10,20,2)
print(a)
#结果
[10 12 14 16 18]

#生成线段linspace
import numpy as np
a=np.linspace(1,10,20)
print(a)
#结果
[ 1.          1.47368421  1.94736842  2.42105263  2.89473684  3.36842105
  3.84210526  4.31578947  4.78947368  5.26315789  5.73684211  6.21052632
  6.68421053  7.15789474  7.63157895  8.10526316  8.57894737  9.05263158
  9.52631579 10.        ]
#生成线段linspace并reshape生成矩阵
import numpy as np
a=np.linspace(1,10,6).reshape((2,3))
print(a)
#结果
[[ 1.   2.8  4.6]
 [ 6.4  8.2 10. ]]
numpy的基础运算

下面是Demo

#numpy基础运算加法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=a+b
print(c)

#numpy基础运算乘法
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=b**2#双星代表平方运算
print(c)


#numpy基础运算三角函数的运算
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)
c=10*np.sin(a)
print(c)
#结果
[10 20 30 40] [0 1 2 3]
[-5.44021111  9.12945251 -9.88031624  7.4511316 ]


#判断那些值等于大于小于
import numpy as np
a=np.array([10,20,30,40])
b=np.arange(4)
print(b)
print(b<3)
print(b==3)
#结果
[0 1 2 3]
[ True  True  True False]
[False False False  True]

#矩阵的运算dot
import numpy as np
a=np.array([[1,1],
            [0,1]])
b=np.arange(4).reshape((2,2))

c=a*b
c_dot=np.dot(a,b)
print(c)
print(c_dot)
#结果
[[0 1]
 [0 3]]
[[2 4]
 [2 3]]

#random.random()随机产生0到1的数字
import numpy as np
a = np.random.random((2,4))
print(a)
print(np.sum(a,axis=1)) #列数中求和
print(np.min(a,axis=0)) #在每行中寻找最小值
print(np.max(a,axis=1)) #在每列中寻求最大值

#结果
[[0.07532438 0.09907934 0.06886118 0.86305739]
 [0.51168121 0.31585224 0.96003614 0.77488453]]
[1.10632228 2.56245412]
[0.07532438 0.09907934 0.06886118 0.77488453]
[0.86305739 0.96003614]
numpy的基础运算2

下面是Demo

#reshape创建矩阵
import numpy as np
a=np.arange(2,14).reshape((3,4))
print(np.argmin(a))#索引最小
print(np.argmax(a))#索引最大
print(np.mean(a))#求出平均值
#结果
0
11
7.5

numpy如何根据位置找到值

python中,一切都是对象,实际上,执行def定义函数后,系统就创建了相应的函数对象。

下面是Demo

#如何根据位置找到值
import numpy as np
a=np.arange(3,15).reshape(3,4)
print(a)
print(a[2][1])
print(a[1,1])
print(a[0,:])
print(a.flatten())
for item in a.flat:#迭代器
    print(item)
for row in a:
    print(row)
for column in a.T:
    print(column)#对列进行的迭代
#结果

[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
12
8
[3 4 5 6]
[ 3  4  5  6  7  8  9 10 11 12 13 14]
3
4
5
6
7
8
9
10
11
12
13
14
[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]

numpy的array合并

下面是Demo

#如何将两个array合并
import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
print(np.vstack((A,B)))#上下合并
D=np.hstack((A,B))#左右合并
C=np.vstack((A,B))#上下合并
print(A[:,np.newaxis])#纵向
print(A.shape,D.shape,C.shape)
print(D)
#结果
[[1]
 [1]
 [1]
 [2]
 [2]
 [2]]
[[[1]]

 [[1]]

 [[1]]]
(3, 1) (3, 2) (6, 1)
[[1 2]
 [1 2]
 [1 2]]

#如何将两个array横向合并
import numpy as np
A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]
C=np.concatenate((A,B,B,A),axis=1)
print(C)

#结果
[[1 2 2 1]
 [1 2 2 1]
 [1 2 2 1]]

#如何将两个array纵向合并
import numpy as np
A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]
C=np.concatenate((A,B,B,A),axis=0)
print(C)
#结果
[[1]
 [1]
 [1]
 [2]
 [2]
 [2]
 [2]
 [2]
 [2]
 [1]
 [1]
 [1]]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值