import numpy as np
1.Numpy 数据类型2.Numpy字符编码
range(7)
np.arange(7)
np.arange(2,4,0.5) : 步长可以为小数
np.arange(7 ,dtype=‘f’) :(np.arange(7 ,dtype=np.float), 由字符编码指定数据类型)
3.自定义数据类型 (第一个是数据类型,第二个是字节数)
例题:利用dtype创建一个存储商店库存信息的数据类
用一个长度为40个字符的字符串来记录商品名称,用一个32位 的整数来记录商品的库存数量,最后用一个32位的单精度浮点 数来记录商品价格。练习:
np.array(
[ ('DVD',42,3.14), ('Butter',13, 2.72) ] , dtype=t
)
实现如下:
array([(‘DVD’, 42, 3.14), (‘Butter’, 13, 2.72)],
dtype=[(‘name’, ‘<U40’), (‘num’, ‘<i4’), (‘price’, ‘<f4’)])
3.数组的索引和切片
1.一维数组的 索引
arr1 = np.array( range(7) )
arr1
结果:array([0, 1, 2, 3, 4, 5, 6])
arr1[-1] :索引
结果:6
arr1[1:4]:切片
结果:array([1, 2, 3])
2.二维数组的 索引
arr2 = np.array( [[1,2,3,4],[5,6,7,8]] )
arr2 = np.array([range(1,5), range(5,9)] )
arr2
结果:
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
arr2[1][1] :索引
结果:6
arr3 = np.arange(1,21).reshape(4,5)
arr3
结果:
array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20]])
三维
arr3 = np.arange(24).reshape(2,3,4)
arr3
结果:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
arr3[0][2][-1] :索引
结果:11
4.切片
1. 切一维
a [start:end:step]
a = np.arange(1,19)
a
结果:
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
18])
a[-1:0:-2]
a[::-2]
a[1::2][::-1]
结果:array([18, 16, 14, 12, 10, 8, 6, 4, 2])
2 .切二维
b = np.arange(1,13).reshape(3,4)
b
结果:
array([[ 1, 2, 3, 4],
[ 5, 6, 7, 8],
[ 9, 10, 11, 12]])
b[::-1]
结果:
array([[ 9, 10, 11, 12],
[ 5, 6, 7, 8],
[ 1, 2, 3, 4]])
3. 切三维
c = np.arange(24).reshape(2,3,4)
c
结果:
array([[[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]],
[[12, 13, 14, 15],
[16, 17, 18, 19],
[20, 21, 22, 23]]])
c[1::,::,-1]
结果:array([[15, 19, 23]])