一、创建
#语法:np.array()
#从code转markdown --esc–m
array(object, dtype=None, copy=True, order=‘K’, subok=False, ndmin=0)
object:转换的对象
dtype:数组的数据类型
copy:是否被复制
order:按照行(C)|列(F)排列
ndmin:多维
#结尾多打两个空格,下一行就会自动换行,可以省去‘\n’
# 导入模块
import numpy as np
# 创建一维数组
a=np.array([0,1,4])
# 创建多维数组
b=np.array([
[1,2,3,4],
[5,6,7,8]
])
# 创建整数类型的数组
c=np.array(range(6),dtype=int)
# 创建两个维度,数据类型是整数的数组
d=np.array(range(6),dtype=int,ndmin=2)#数据类型是整数,数据维度是2
# 输入的是几个维度,就自动生成几个维度的数组
f=np.array([range(6),range(6)],ndmin=0,dtype=float) #ndim=0是按照输入的维度来算
#创建一个值均为0的2*2多维ndarray对象
np.zeros((2,2))
#创建一个值均为1的1*2维ndarray对象
np.ones([1,2])
#创建一个值均为7的3*3维ndarray对象
np.full((3,3),7)
#创建一个4*4维对角矩阵
np.eye(4)
np.eye(4,k=1) #向后面移动一位
定义一个函数来看看数组的一些基本情况
def showArrayInfo(a):
print(a)
print('type',type(a))
print('转置:\n',a.T)
print('数组有几行几列:',a.shape)
print('数组元素的数据类型:',a.dtype)
print('数组的维度',a.ndim)#提示是tab键
print('数组元素的个数',a.size)
print('数组元素的字节长度',a.itemsize)
print('数组元素的字节长度总和:',a.nbytes)
print('数组的一维迭代器:',a.flat)
二、数据类型
1.numpy 的数据类型
# 浮点型
np.float64(42)
# 整型
b=np.int8(60)
# 注意:转换的值不要超出数据类型的范围
np.int8(400) #-112
#布尔类型,注意:除了0为false,其他的数字都为true
np.bool(0) # false
np.bool(1) # true
np.float64(True) # 1.0
np.int(False) # 0
np.int(True) # 1
2.numpy字符编码
整数 :i
无符号整数:u
单精度浮点数:f
双精度浮点数:d
布尔值:b
复数:D
字符串:s
unicode字符串:U
void(空):v
#类似range,创建浮点型的数组
np.arange(7,dtype='f')
array([0., 1., 2., 3., 4., 5., 6.], dtype=float32)
# 创建复数型的数组
np.arange(7,dtype='D')
array([0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j])
3.自定义数据类型
案例:利用dtype创建一个存储商店库存信息的数据类 用一个长度为40个字符的字符串来记录商品名称,用一个32位的 整数来记录商品的库存数量,最后用一个32位的单精度浮点数来 记录商品价格。
# 准备好数据类型
t=np.dtype([('name',np.str,40),('num',np.int32),('price',np.float32)]) #默认是32
t
dtype([(‘name’, ‘<U40’), (‘num’, ‘<i4’), (‘price’, ‘<f4’)])
# 运用上面的数据类型在商品之中
items=np.array([
('DVD',42,3.14),
('Butter',13,2.72)
],dtype=t)
items
看一下t.names是什么
t.names
(‘name’, ‘num’, ‘price’)
print(t.names[0],'\t',t.names[1],'\t',t.names[2])
for i in range(items.size):
print('------------------------------')
print(items[i][0],'\t',items[i][1],'\t',items[i][2])
name num price
------------------------------
DVD 42 3.14
------------------------------
Butter 13 2.72