Numpyweb服务器

NumPy( 创建及基本函数)

2018-11-09  本文已影响12人  GHope

要点

NumPy之于数值计算特别重要的原因之一,是因为它可以高效处理大数组的数据。

NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。NumPy的C语言编写的算法库可以操作内存,而不必进行类型检查或其它前期工作。比起Python的内置序列, NumPy数组使用的内存更少。

NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。

性能对比

基于NumPy的算法要比纯Python快10到100倍(甚至更快),并且使用的内存更少。

 import numpy as np

 %timeit my_arr = np.arange(1000000)

 %timeit my_list = list(range(1000000))
性能对比

ndarray

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

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

import numpy as np

data = np.random.randn(2, 3)
array

ndarray是一个通用的同构数据多维容器,所有元素必须是相同类型的

# 取维度大小 
data.shape 
# 取数据数据类型 
data.dtype
多维数组容器

创建ndarray(强转列表)

 data1 = [5,8.4,9,233]

 arr = np.array(data1)
创建ndarray

嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组

data2 = [[1,2,3,4],[5,6,7,8]]

arr1 = np.array(data2)

# 取维度 
arr1.ndim 
arr1.shape 
arr1.dtype
多维数组

zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。np.empty返回的都是一些未初始化的垃圾值。

np.zeros(10)

np.ones((3,6))

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

np.arange(15)
基本函数
函数 说明
array 将输入数据(列表、元组、数组或其它序列类型)转换为ndarry。推断除dtype或特别指定dtype。默认直接赋值输入数据
asarry 将输入转化为ndarray,如果输入本身是一个ndarray就不在复制
arange 类似于内置的range,但返回的是一个ndarray而非list
ones,ones_like 根据指定的形状和dtype创建一个全一数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全一数组
zeros,zeros_like 类似于ones和ones_like,只不过产生的是全0数组而已
empty,empty_like 创建新数组,只分配内存空间但不填充任何值
full,full_like 用full value中的所有值,根据指定的形状和dtype创建一个数组。full_like使用另一个数组,用相同的形状和dtype创建
eye,identity 创建一个正方的N*N单位矩阵(对角线为一,其余为零)
上一篇 下一篇

猜你喜欢

热点阅读