Numpy

Python学习笔记(1):Numpy基础ndarray对象及其

2019-02-06  本文已影响1人  刘爱玛

目录
一、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无论如何都会创建出一个新的数组。

上一篇下一篇

猜你喜欢

热点阅读