我爱编程

NumPy--ndarray 的创建和各种数据类型

2017-09-04  本文已影响209人  b485c88ab697

ndarray 的创建和各种数据类型

创建

由一维数组创建

import numpy as np
data = [6,8,2,3,4,4]
arr = np.array(data)
print(arr)
arr.ndim
类型 说明
array 将输入数据(列表、元组、数组或其它序列类型)转换为ndarray。要么推断出dtype, 要么显示指定dtype。默认直接复制输入数据。
asarray 将输入转换为darray,如果输入本身就是一个ndarray就不进行复制。
arange 类似于内置的range,但返回一个ndarray而不是列表。
ones, ones_like 根据指定形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形 状和dtype创建一个全1数组。
zeros, zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已。
empty, empty_like 创建数组,只分配内存空间但不填充任何值。
eye, identity 创建一个正方的N * N单位矩阵

多维数组内存结构

普通二维数组创建

data = [[1,2,3,4],[5,6,7,8.0]]
arr = np.array(data)
print(arr)
arr.shape
arr.dtype
arr.ndim

zeros

np.zeros(10)
np.zeros((3,4))

empty 未初始化的数组

np.empty((2,2,3))
np.empty((2,2,3),int)

ones

np.ones((2,3))
np.ones((2,3),int)

arange

np.arange(10)

生成数组时指定数据类型

arr = np.array([1,2,3],dtype = np.int32)
arr = np.array([1,2,3],dtype = np.float32)
print(arr)

astype

int_arr = np.array([1,2,3,4,5])
int_arr.dtype
float_arr = int_arr.astype(dtype = np.float32 )
float_arr.dtype

假如是有浮点型向整形转换 小数部分会被舍弃

float_arr = np.array([2.2,3.3,4.4,5.5])
int_arr = float_arr.astype(dtype = np.int)
print(float_arr)

把字符串序列转化为数组

str_arr = np.array(['1.1','2.2','3.3','4.4'],dtype = np.string_)
str_arr
float_arr = str_arr.astype(dtype = np.float32)
print(float_arr)
print(float_arr.dtype)

把其他数组的数据类型作为astype的参数

int_arr = np.arange(10)
float_arr2 = int_arr.astype(float_arr.dtype)
print(float_arr2)
print(float_arr2.dtype)

数组和标量之间的运算

大小相等的数组之间的任何算术运算都会将运算应用到元素级

数组与标量的算术运算也会将那个标量值传播到各个元素

arr = np.array([[1,2,3],[4,5,6]])
arr.shape
print(arr)
print(arr*arr)
print(arr+arr)
print(arr-arr)
print(arr*3)
print(1/arr)
print(arr**0.5)
上一篇下一篇

猜你喜欢

热点阅读