目录
一、Numpy的ndarray:一种多维数组对象
1、ndarray的新建
(1)方法1:array
(2)方法2: arange
(3)方法3:ones, zeros, empty
(4)方法4:eye、identity
2、ndarray的dtype
(1)numpy的数据类型
(2)创建ndarray时规定数据类型
(3)数据转换:astype
一、Numpy的ndarray:一种多维数组对象
1、多维数组的新建
(1)方法1:array
numpy.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
最常用的是前两个参数,object表示数组对象,dtype表示ndarray的数据类型
新建一个一维数组:
#ndarray: 多维数组
>>>import numpy as np
>>>data1 = [1, 2, 3, 4]
>>>arr1 = np.array(data1)
>>>arr1
array([1, 2, 3, 4])
新建一个多维数组:
>>>data2 = [[1, 2, 3, 4], [5, 6, 7, 8]]
>>>arr2 = np.array(data2)
>>>arr2
array([[1, 2, 3, 4],
[5, 6, 7, 8]])
(2)方法2: arange
numpy.arange([start, ]stop, [step, ]dtype=None)
start:起始值,stop:结束值,step:步距
最基础用法:
>>>np.arange(10)
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
其他示例:
>>> np.arange(3.0)
array([ 0., 1., 2.])
>>> np.arange(3,7)
array([3, 4, 5, 6])
>>> np.arange(3,7,2)
array([3, 5])
(3)方法3:ones, zeros, empty
ones, ones_like:创建全1数组,可指定数据类型,ones可以指定数组大小,ones_like可以以某一数组大小为参照
ones用法:
>>>ones1 = np.ones((2,3,2))
>>>ones1
array([[[1., 1.],
[1., 1.],
[1., 1.]],
[[1., 1.],
[1., 1.],
[1., 1.]]])
ones_like用法:
>>>ones_like1 = np.ones_like(arr2)
>>>ones_like1
array([[1, 1, 1, 1],
[1, 1, 1, 1]])
zeros、zeros_like
empty、empty_like
用法同以上
(4)方法4:eye、identity
创建N*N单位矩阵(对角线为1, 其余为0)
用法:
>>>np.eye(3)
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]])
2、ndarray的dtype
(1)numpy的数据类型
名称 | 描述 |
---|---|
bool_ | 布尔型数据类型(True 或者 False) |
int_ | 默认的整数类型(类似于 C 语言中的 long,int32 或 int64) |
intc | 与 C 的 int 类型一样,一般是 int32 或 int 64 |
intp | 用于索引的整数类型(类似于 C 的 ssize_t,一般情况下仍然是 int32 或 int64) |
int8 | 字节(-128 to 127) |
int16 | 整数(-32768 to 32767) |
int32 | 整数(-2147483648 to 2147483647) |
int64 | 整数(-9223372036854775808 to 9223372036854775807) |
uint8 | 无符号整数(0 to 255) |
uint16 | 无符号整数(0 to 65535) |
uint32 | 无符号整数(0 to 4294967295) |
uint64 | 无符号整数(0 to 18446744073709551615) |
float_ | float64 类型的简写 |
float16 | 半精度浮点数,包括:1 个符号位,5 个指数位,10 个尾数位 |
float32 | 单精度浮点数,包括:1 个符号位,8 个指数位,23 个尾数位 |
float64 | 双精度浮点数,包括:1 个符号位,11 个指数位,52 个尾数位 |
complex_ | complex128 类型的简写,即 128 位复数 |
complex64 | 复数,表示双 32 位浮点数(实数部分和虚数部分) |
complex128 | 复数,表示双 64 位浮点数(实数部分和虚数部分) |
string_ | 字符串 |
unicode_ | unicode类型 |
注:numpy 的数值类型实际上是 dtype 对象的实例,并对应唯一的字符,包括 np.bool_,np.int32,np.float32,等等。
(2)创建ndarray时规定数据类型
>>>arr1 = np.array([1, 2, 3], dtype = np.float64)
>>>arr2 = np.array([1, 2, 3], dtype = np.int32)
>>>arr1.dtype
dtype('float64')
>>>arr2.dtype
dtype('int32')
(3)数据转换:astype
>>>arr = np.array([1, 2, 3, 4, 5])
>>>arr.dtype
dtype('int64')
>>>float_arr = arr.astype(np.float64)
>>>float_arr.dtype
dtype('float64')
注:astype无论如何都会创建出一个新的数组。