数值计算工具NumPy

数组的创建

1.利用array函数创建数组

import numpy as np
a=np.array([2,4,6,8,1]) #单个列表创建一维数组
b=np.array(((1.1,2,3),(4,5,6),(7,8,9))) #嵌套元组创建二维数组
print('一维数组a:',a)
print('二维数组b:\n',b)

输出:

一维数组a: [2 4 6 8 1]
二维数组b:
 [[1.1 2.  3. ]
 [4.  5.  6. ]
 [7.  8.  9. ]]

注意:在b中,输入的元素有浮点型和整型,但输出的元素都转为了浮点型

2.利用arange,empty,linspace等函数生成数组

import numpy as np
c=np.arange(4,dtype=float) #创建浮点型数组
d=np.arange(0,10,2,dtype=int) #创建整型数组
e=np.empty((2,3),int) #创建2×3的整型空矩阵;empty函数只分配数组所使用的的内存,返回值每次随机
f=np.linspace(-1,2,5) #创建数组:[-1.,-0.25,0.5,1.25,2.]
g=np.random.randint(0,3,(2,3)) #生成[0,3)上的2行3列的随机整数数组
print(c,'\n',d,'\n',e,'\n',f,'\n',g)

输出:

[0. 1. 2. 3.] 
 [0 2 4 6 8] 
 [[1784835872  544498533 1092645487]
 [1229538131 1920234272  543649385]] 
 [-1.   -0.25  0.5   1.25  2.  ] 
 [[2 1 2]
 [0 0 2]]

3.使用虚数单位“j”生成数组

import numpy as np
h=np.linspace(0,2,5) #生成数组:[0.,0.5,1.,1.5,2.]
i=np.mgrid[0:2:5j]   #等价于np.linspace(0,2,5)
x,y=np.mgrid[0:2:4j,10:20:5j] #生成[0,2]×[10,20]上的4×5的二维数组
print('x={}\ny={}'.format(x,y))

输出:

x=[[0.         0.         0.         0.         0.        ]
 [0.66666667 0.66666667 0.66666667 0.66666667 0.66666667]
 [1.33333333 1.33333333 1.33333333 1.33333333 1.33333333]
 [2.         2.         2.         2.         2.        ]]
y=[[10.  12.5 15.  17.5 20. ]
 [10.  12.5 15.  17.5 20. ]
 [10.  12.5 15.  17.5 20. ]
 [10.  12.5 15.  17.5 20. ]]

数组的属性

1.生成[1,10]区间上3行5列的随机整数矩阵,并显示其各个属性

import numpy as np
j=np.random.randint(1,11,(3,5))#生成[1,10]区间上3行5列的随机整数数组
print("维数: ",j.ndim)
print("维度: ",j.shape)
print("元素总数: ",j.size)
print("类型: ",j.dtype)
print("每个元素字节数:",j.itemsize) 

输出:

维数:  2
维度:  (3, 5)
元素总数:  15
类型:  int32
每个元素字节数: 4

2.生成数学上一维向量的三种模式

import numpy as np
k=np.array([1,2,3])
print("维度为: ",k.shape)
l=np.array([[1,2,3]])
print("维度为: ",l.shape)
m=np.array([[1],[2],[3]])
print("维度为: ",m.shape)

输出:

维度为:  (3,)
维度为:  (1, 3)
维度为:  (3, 1)

数组元素的索引

1.一般索引

#数组索引示例
import numpy as np
m = np.array([2,4,8,20,16,30])
n = np.array(((1,2,3,4,5),(6,7,8,9,10),(10,9,1,2,3),(4,5,6,8,9.0)))
print(m[[2,3,5]])  #一维数组索引,输出: [ 8 20 30]
print(m[[-1,-2,-3]])  #一维数组索引,输出: [30 16 20]
print(n[1,2])  #输出第2行第3列元素: 8.0
print(n[2])    #输出第3行元素: [10. 9. 1. 2. 3.]
print(n[2,:])  #输出第3行元素: [10. 9. 1. 2. 3.]
print(n[:,1])  #输出第2列所有元素: [2. 7. 9. 5.]
print(n[[2,3],1:4]) #输出第3、4行,第2、3、4列的元素
print(n[1:3,1:3])  #输出第2、3行,第2、3列的元素

2.布尔索引

from numpy import array,nan,isnan
a=array([[1,nan,2],[4,nan,3]])
b=a[~isnan(a)] #提取a中非nan的数
print(b)
print('b中大于2的元素:',b[b>2])

输出:

[1. 2. 4. 3.]
b中大于2的元素: [4. 3.]

3.花式索引

花式索引的索引值是一个数组。对于使用一维整型数组作为索引, 如果被索引数据是一维数组,那么索引的结果就是对应位置的元素;如果被索引数据是二维数组,那么索引的结果就是对应下标的行。

对于二维被索引数据来说,索引值可以是二维数据,当索引值为两个维度相同的一维数组组成的二维数组时,以两个维度作为横纵坐标索引出单值后组合成新的一维数组。

from numpy import array
w=array([[1,2],[3,4],[5,6]])
print('前两行元素:\n',w[[0,1]])
print('x[0][0]和x[1][1]为:',w[[0,1],[0,1]])
print(' ')
#以下两种格式输出一样
print(w[[0,1]][:,[0,1]])
print(w[0:2,0:2])
前两行元素:
 [[1 2]
 [3 4]]
x[0][0]和x[1][1]为: [1 4]
 
[[1 2]
 [3 4]]
[[1 2]
 [3 4]]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值