当前位置:文档之家› python中的数组和矩阵(numpy)

python中的数组和矩阵(numpy)

[3,4,5]]) x=np.arange(10,1,-1) print(x) a=x[[3,3,1,8]] print(a) a[2]=10 print(a) print(x) [10 9 8 7 6 5 4 3 2] [7 7 9 2] [ 7 7 10 2]
[10 9 8 7 6 5 4 3 2] 使用布尔数组获取数组中的元素 import numpy as np x= np.arange(5,0,-1) print(x) print('-'*30) a=x[np.array([True,False,True,False,True])] print(a) [5 4 3 2 1] -----------------------------[5 3 1] 6.多维数组 Numpy 采用元组作为多维数组的下表,元组中的每个元素和数组的每个轴对应。
(2)linspace()指定开始值、终值、元素个数创建等差数列的一维数组
(3)logspace()指定开始值、终值、元素个数创建等比数列的一维数组
(4)zeros() ones() empty()创建指定形状和类型的数组 full()将数组元素填充
为指定值
import numpy as np
a=np.arange(0,10,1)#指定步长的等差数列
<clagt; number of dim: 2 shape: (2, 3) size 6 [[1 2 3] [3 4 5]] 2. 改变数组的行列数(具体数值不变) import numpy as np array=np.array([[1,2,3],
[3,4,5]]) print(array) print('-'*30) array.shape=3,2#直接改变行列数 print(array) print('-'*30) array.shape=1,-1#当设置某个轴的个数为-1 时,自动计算此轴的长度 print(array) print('-'*30) [[1 2 3] [3 4 5]] -----------------------------[[1 2] [3 3] [4 5]] -----------------------------[[1 2 3 3 4 5]] 使用 reshape()方法,创建指定形状的新数组,原数组保持不变 import numpy as np array=np.array([[1,2,3],
b=np.linspace(0,1,10)#指定个数的等差数列
c=np.logspace(0,10,2)#指定个数的等比数列
d=np.zeros((2,3))#零矩阵
e=np.ones((2,3))#1 矩阵
f=np.full((2,3),4,dtype='int32')# 4 矩阵
print(a)
我们先创建一个 dtype 对象 persontype,它的参数是一个描述结构类型的各个 字段的字典。 字典有两个键:’names^nTormats、每个键对应的值都是一个列表。 hame^定义结构中每个字段 的名称,而 Tormats 侧定义每个字段的类型。这里我 们使用类型字符串定义字段类型:
• S30’:长度为30个字节的字符串类型,由于结构中的每个元素的大小必须同定, 因此 需要指定字符串的长度。
[3,4,5]])
print(array.dtype)#打印数组元素类型, b=np.array([1,2,3,4],dtype=np.int64)#指定数组类型 print(b.dtype) int32 int64
4. 自动生成数组
(1)arange()指定开始值、终值、步长创建等差数列的一维数组
'offsets':[0,32,36],
print(a[0]['name']) b'zhang' //b 表示 bytes,无具体意义
8.ufunc 函数 ufunc 函数是 universal function 的缩写,它是一种能对数组中的每个元素进行运 算的函数。Numpy 中的许多 ufunc 函数是用 c 语言实现的,因此其运算速度非常 快。
• T: 32位的整数类型,相当于np.int32。 • 32 位的单精度浮点数类型,相当于 np.float32。 然后调用 array()以创建数组,通过 dtype 参数指定所创建的数组的元素类型为 persontype。
print(a.dtype)#输出数组 a 的数据类型 {'names':['name','age','weight'], 'formats':['S30','<i4','<f4'], 'itemsize':40, 'aligned':True}
[3,4,5]]) print(array) print('-'*30)
b=array.reshape(1,-1) print(b) [[1 2 3] [3 4 5]] -----------------------------[[1 2 3 3 4 5]] 3. 指定数组元素的类型 import numpy as np array=np.array([[1,2,3],
共享内存空间(会同时修改)
import numpy as np
array=np.array([[1,2,3],
[3,4,5]])
b=array[0,0:3]#多元数组的下标存取元素,在此为取第一行的 0-2 三个元素 print('数组 b 为:',b) b[2]=99 print('更改后的数组 b 为:',b) print('array 为:' 数组 b 为: [1 2 3] 更改后的数组 b 为: [ 1 2 99] array 为: [[ 1 2 99] [ 3 4 5]] 当使用整数列表对数组元素进行存取时,将使用数组中的每个元素作为下标,使 用列表作为下标得到的数组不和原始数组共享数据: import numpy as np array=np.array([[1,2,3],
print('-'*20)
print(b)
print('-'*20)
print(c)
print('-'*20)
print(d)
print('-'*20)
print(e)
print('-'*20)
print(f)
[0 1 2 3 4 5 6 7 8 9]
--------------------
[ 0.
0.11111111 0.22222222 0.33333333 0.44444444 0.55555556
0.66666667 0.77777778 0.88888889 1.
]
--------------------
[ 1.00000000e+00 1.00000000e+10]
--------------------
a[:,2]为: [ 2 12 22 32 42 52] a[2::2,::2]为: [[20 22 24] [40 42 44]]
7.结构数组 类似于 C 语言中的 struct 关键字创建结构体,numpy 中使用 dtype 自定义数
据类型。假设需定义一个结构数组,每个元素都有 name、age 和 weight 字段。 import numpy as np persontype=np.dtype({'names':['name','age','weight'],'formats':['S30 ','i','f']},align=True) a=np.array([("zhang",32,75.5),("wang",24,65.2)],dtype=persontype) print(a)
import numpy as np a=np.arange(0,60,10).reshape(-1,1)+np.arange(0,6) print(a) print('-'*30) print('a[0,3:5]为:',a[0,3:5]) print('a[4:,4:]为:',a[4:,4:]) print('a[:,2]为:',a[:,2]) print('a[2::2,::2]为:',a[2::2,::2])#开始值:结束值:步长 [[ 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]] -----------------------------a[0,3:5]为: [3 4] a[4:,4:]为: [[44 45] [54 55]]
[[ 0. 0. 0.]
[ 0. 0. 0.]]
--------------------
[[ 1. 1. 1.]
[ 1. 1. 1.]]
--------------------
[[4 4 4]
[4 4 4]]
5. 数组存取元素
类似于列表,数组可以通过下标、切片存取元素。
和列表不同的是,通过切片获取的新的数组是原始数组的一个视图,和原始数组
一、python 中的数组
1. 创建 numpy 的 array,并显示相关属性 import numpy as np array=np.array([[1,2,3],
相关主题