python之多维数组(⼀)
多维数组
Numpy中定义的最终对象是称为ndarray的N维数组类型。它描述相同类型的元素集合。可以使⽤基于零的索引访问集合中的项⽬。
ndarray创建⽅式
array()函数
接收⼀个普通的python序列,并将其转换为ndarray。
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
序号参数描述
1object任何暴露数组接⼝⽅法的对象都会返回⼀个数组或任何(嵌套)序列。
2dtype数组的所需数据类型,可选。
3copy可选,默认为true,对象是否被复制。
4order C(按⾏)、F(按列)或A(任意,默认)。
5subok默认情况下,返回的数组被强制为基类数组。如果为true,则返回⼦类。
6ndimin指定返回数组的最⼩维数。
import numpy as np
# 例⼦01
a = np.array([1,2,3])
print(a)
print(type(a))
# 多于⼀个维度
a2 = np.array([[1,2],[3,4]])
print(a2)
# 最⼩维度
a3 = np.array([1,2,3,4,5],ndmin =2)
print(a3)
empty()函数
创建指定形状和dtype的未初始化数组
序号参数描述
1Shape空数组的形状,整数或整数元组
2Dtype所需的输出数组类型,可选
3Order'C’为按⾏的 C 风格数组,'F’为按列的 Fortran 风格数组
import numpy as np
#例: 数组元素为随机值
arr = np.empty((3,3),dtype ='i1')
print(arr)
zeros()函数
创建指定长度或者形状的全零数组。
# 例
arr = np.zeros((3,3))
print(arr)
# ⾃定义类型
arr = np.zeros((3,3), dtype =[('x','i4'),('y','i4')])
print(arr)
ones()函数
创建指定长度或者形状的全1数组。
arr = np.ones((2,3,4))
print(arr)
# ⾃定义类型
arr = np.ones((3,3), dtype =[('x','i4'),('y','i4')])
print(arr)
asarray()函数
类似 numpy.array 可以将Python序列转换为ndarray。
# 来⾃列表
arr =[1,2,3,4]
arr2 = np.asarray(arr)
print(arr2)
print(type(arr))
print(type(arr2))
# 来⾃元组
arr =(1,2,3,4)
arr2 = np.asarray(arr)
print(arr2)
print(type(arr))
print(type(arr2))
# 来⾃元组列表
arr =[(1,2,3,4),(5,6,7,8)]
arr2 = np.asarray(arr)
print(arr2)
print(type(arr))
print(type(arr2))
arange()函数
类似python的range函数,通过指定开始值、终值和步长来创建⼀个⼀维数组,注意:最终创建的数组不包含终值。numpy.arange(start,stop,step,dtype)
arr = np.arange(5,dtype =float)
print(arr)
linspace()函数
通过指定开始值、终值和元素个数来创建⼀个⼀维数组,数组的数据元素符合等差数列,可以通过endpoint关键字指定是否包含终值,默认包含终值。
等差数列
linspace numpynumpy.linspace(start,stop,num,endpoint,retstep,dtype)
序号参数描述
1start起始值
2stop结束值
3num⽣成等间隔样例的数量,默认为50
4endpoint序列中是否包含stop 值 默认为 True
arr = np.linspace(10,20,9)
print(arr)
arr = np.linspace(10,20,5,endpoint=False)
print(arr)
arr = np.linspace(10,20,5,retstep=True)
print(arr)#返回步长
logspace()函数
和linspace函数类似,不过创建的是等⽐数列数组。
numpy.logscale(start, stop, num, endpoint, base, dtype)
序号参数描述
1start起始值是base ** start
2stop终⽌值是base ** stop
3.num范围内的数值数量,默认为50
4endpoint如果为true,终⽌值包含在输出数组当中
5base对数空间的底数,默认为10
6dtype输出数组的数据类型,如果没有提供,则取决于其它参数
arr = np.logspace(0,2,5)
#  0表⽰10的0次⽅,2表⽰10的2次⽅,5表⽰最终⽣成元素数量为5
print(arr)
arr1 = np.logspace(1,10,5,base =2)
print(arr1)
random()函数
使⽤随机数填充数组,即使⽤numpy.random中的random()函数来创建0-1之间的随机元素,数组包含的元素数量由参数决定。
序号参数描述
1rand返回 0 - 1 随机值
2randn返回⼀个样本具有标准正态分布
3randint返回随机的整数,位于半开区间[low,hight)size = 10 (3,3)
4random_integers(low[, high, size])返回随机的整数,位于闭区间
5random返回随机浮点数
序号参数描述arr = np.random.rand(9).reshape(3,3)
print(arr)
arr = np.random.rand(3,2,3)
print(arr)
arr = np.random.randn(9).reshape(3,3)
print(arr)
arr = np.random.randn(3,2,3)
print(arr)
arr = np.random.randint(1,9,size =(2,4))
print(arr)
arr = np.random.random_integers(1,9,size =(2,4))
print(arr)
arr = np.random.random((3,2,3))
print(arr)
arr = np.random.randn(3,2,3)
print(arr)
ndarray对象属性
shape
数组的维度。
这个数组属性返回⼀个包含数组维度的元组,它也可以⽤于调整数组⼤⼩。
a = np.array([[1,2,3],[4,5,6]])
print(a)# [[1 2 3]
#[4 5 6]]
print(a.shape)# (2, 3)
调整数组⼤⼩
a = np.array([[1,2,3],[4,5,6]])
a.shape=(3,2)
print(a)
reshape 调整数组⼤⼩。
a = np.array([[1,2,3],[4,5,6]])
b = a.reshape(3,2)
print(b)
ndim
数组轴(维度)的个数。
a = np.arange(24)
print(a)
print(a.ndim)
b = a.reshape(2,4,3)
print(b)
print(b.ndim)
print(b.shape)
itemsize
数组中每个元素的字节⼤⼩。
#数组的int8 ⼀个字节
x = np.array([1,2,3,4,5], dtype = np.int8)
print(x.itemsize)
数组的float32 4个字节
x = np.array([1,2,3,4,5], dtype = np.float32)
print(x.itemsize)
size
数组元素的总个数,等于shape属性中元组元素的乘积。
arr = np.arange(18).reshape(2,3,3)
print(type(str(arr)))
print(arr.shape)
print(arr.size)
dtype
描述数组中元素类型的对象。
数据类型类型简写说明
int_默认整形
intc等价于long的整形
int8i1字节整形,1个字节,范围:[-128,127]
int16i2整形,2个字节,范围:[-32768,32767]
int32i3整形,4个字节,范围:[-2^31, 2^31-1]
int64i4整形,8个字节,范围:[-2^63, 2^63-1]
uint8u1⽆符号整形, 1个字节, 范围:[0,255]
uint16u2⽆符号整形, 2个字节, 范围:[0,65535]
uint32u3⽆符号整形, 1个字节, 范围:[0, 2^32-1]
uint64u4⽆符号整形, 1个字节, 范围:[0,2^64-1]
bool_以⼀个字节形成存储的布尔值(True或者False)
float_float64简写形式
float16f2半精度浮点型(2字节):1符号位+5位指数+10位的⼩数部分
float32f4或者f单精度浮点型(4字节):1符号位+8位指数+23位的⼩数部分
float64f8或者d双精度浮点型(8字节):1符号位+11位指数+52位的⼩数部分
complex_c16complex128的简写形式
complex64c8complex128的简写形式
complex128c16复数,由两个64位的浮点数来表⽰
object O Python对象类型
String_S固定长度的字符串类型(每个字符1个字节),⽐如:要创建⼀个长度为8的字符串,应该使⽤S8 Unicode_U固定长度的unicode类型的字符串(每个字符占⽤字节数由平台决定),长度定义类似String_类型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。