4.numpy基础

NumPy的ndarray: 一种多维数组对象

Numpy最重要的一个特点就是其N维数组对象(ndarray),该对象是一个快速灵活的大数据集容器.你可以利用这种数组对整块数据执行一些数学运算,其语法跟标量元素之间的运算一样:

In[1]:data
Out[1]:
array([[0.1, 0.2],
       [0.3, 0.4]])
In[2]:data * 10
Out[2]:
array([[1, 2],
       [3, 4]])

ndarray是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的。每个数组都有一个shape(一个表示各维度大小的元祖)和一个dtype(一个用于说明数组数据类型的对象):

data.shape // (2, 3)
data.dtype // dtype('float64')
  1. 创建ndarray
import numpy as np


data1 = [6, 7.5, 8, 0, 1]
arr1 = np.array(data1)

data2 = [[1,2, 3, 4], [5, 6, 7,8]]
arr2 = np.array(data2)

arr2.ndim // 2 维度

arr2.shape // (2, 4) 

arr1.dtype //dtype('float64')

arr2.dtype // dtype('int64')
函数 说明
array 将输入数据(列表、元祖、数组或其他序列类型) 转换为ndarray。要么推断出dtype,要么显示指定dtype.默认直接复制输入数据.(浅拷贝)
ararray 将输入转换为ndarray,如果输入本身就是一个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 创建一个正方的NxN单位矩阵(对角线为1,其余为0)

2.ndarray的数据类型

import numpy as np
arr1 = np.array([1, 2, 3]. dtype=np.float64)

arr2 = np.array([1, 2, 3], dtype=np.int32)

np的数据类型只要有

类型 类型代码 说明
int8, uint8 i1 u1
int16 uint16 i2 u2
int32 uint32 i4 u4
int64 unint64 i8 u8
float16 f2
float32 f4或f
float64 f8或d
float128 f16或g
complex64 complex128 complex 256 c8 c16 c32
bool ?
object O python对象类型
string_ S 固定长度的字符串类型(每个字符一个字节) 列如,要创建一个长度为10的字符串 应使用S10
unicode_ U 固定长度的unicode类型,跟字符串的定义方式一样
arr = np.array([3,7, -1,2, -2.6, 0.5, 12.9, 10.1])
arr.astype(np.int32)// array([3, -1, -2, 0, 12, 10])

3.数组的运算

数组与标量之间的运算

arr = np.array([[1., 2., 3.], [4., 5., 6.]])

arr * arr // array([[1., 4., 9.], [16., 25., 36.]])

1 / arr // array([[1., 0.5, 0.333], [-.25. 0.2, 0.1667]])

arr * 2 // array([[2., 4., 6.], [8., 10., 12.]])

4.基本的索引和切片

arr = np.arange(10)

arr[5]  // 5

arr[5:8] // array([5, 6, 7])

arr[5: 8] = 12 // array([0, 1, 2, 3, 4, 12, 12, 12, 8, 9])

你可能感兴趣的:(4.numpy基础)