1. 创建数组的几种方式
1.0. 引入Numpy库
import numpy as np
1.1. 使用np.array创建数组
a = np.array([1,2,3,4])
print(a)
print(type(a))
1.2. 使用np.arange创建数组
b = np.arange(0,10,2)
1.3. np.random.random创建数组
c = np.random.random((2,2))
1.4. np.random.randint创建数组
d = np.random.randint(0,9,size=(4,4))
1.5. 特殊函数
array_zeros = np.zeros((3,3))
array_ones = np.ones((4,4))
array_full = np.full((2,3),9)
array_eye = np.eye(4)
1.6. 注意
数组中的数据类型必须一致,要么全部为整型,要么全部为浮点类型,要么全部为字符串类型
不能同时出现多种数据类型
2. 数组数据类型
2.1 数据类型
数据类型 |
描述 |
唯一标识符 |
bool |
用一个字节存储的布尔类型(True或False) |
b |
int8 |
一个字节大小,-128 至 127 |
i1 |
int16 |
整数,16 位整数(-32768 ~ 32767) |
i2 |
int32 |
整数,32 位整数(-2147483648 ~ 2147483647) |
i4 |
int64 |
整数,64 位整数(-9223372036854775808 ~ 9223372036854775807) |
i8 |
uint8 |
无符号整数,0 至 255 |
u1 |
uint16 |
无符号整数,0 至 65535 |
u2 |
uint32 |
无符号整数,0 至 2 ** 32 - 1 |
u4 |
uint64 |
无符号整数,0 至 2 ** 64 - 1 |
u8 |
float16 |
半精度浮点数:16位,正负号1位,指数5位,精度10位 |
f2 |
float32 |
单精度浮点数:32位,正负号1位,指数8位,精度23位 |
f4 |
float64 |
单精度浮点数:64位,正负号1位,指数11位,精度52位 |
f8 |
complex64 |
复数,分别用两个32位浮点数表示实部和虚部 |
c8 |
complex128 |
复数,分别用两个64位浮点数表示实部和虚部 |
c16 |
object_ |
python对象 |
O |
string_ |
字符串 |
S |
unicode_ |
unicode类型 |
U |
2.2 创建数组指定数据类型
import numpy as np
a = np.array([1,2,3,4,5],dtype='i1')
a = np.array([1,2,3,4,5],dtype=int32)
2.3 查询数据类型
class Person:
def __init__(self,name,age):
self.name = name
self.age = age
d = np.array([Person('test1',18),Person('test2',20)])
print(d)
print(d.dtype)
2.4 修改数据类型
f = a.astype('f2')
2.5 总结
(1) Numpy是基于C语言编写,引用了C语言的数据类型,所以Numpy的数组中数据类型多样
(2) 不同的数据类型有利于处理海量数据,针对不同数据赋予不同数据类型,从而节省内存空间
3. 多维数组
3.1 数组维度查询
import numpy as np
a1 = np.array([1,2,3])
print(a1.ndim)
a2 = np.array([[1,2,3],[4,5,6]])
print(a2.ndim)
a3 = np.array([
[
[1,2,3],
[4,5,6]
],
[
[7,8,9],
[10,11,12]
]
])
print(a3.ndim)
3.2 数组形状查询
a1 = np.array([1,2,3]