Tic商业评论

关注微信公众号【站长自定义模块】,定时推送前沿、专业、深度的商业资讯。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

numpy简介以及创建

0
回复
5747
查看
[复制链接]
已绑定手机

49

主题

4

回帖

1228

积分

管理员

积分
1228
QQ
来源: 2020-6-22 21:32:16 显示全部楼层 |阅读模式
Numpy:一个数字科学计算库
Numpy是在Python中最重的的数字计算库之一,Pandas, Matplotlib, Statmodels 和很多其他的科学库都要依赖NumPy
Numpy的主要贡献:
  • 基于c的高效数字计算
  • 高效的矢量操作
  • 提供线性代数的API,里面很多矩阵操作
  • 用c++,c或者FORTRAN写的Numpy提供CAPI


下面是在内存中的存储方式:

存储方式

存储方式

array.png
上图numpy是连续的存储,而非指针式的存储,运行效率更高

数组创建
查看版本
import numpy as np

print(np.version.version)
1.18.1

Python 的几种格式转换为array
#list

a = [1,2,3,4,5,6,7]

arr = np.array(a)

print(arr)

print(a)

print(type(a))

print(type(arr))
[1 2 3 4 5 6 7][1, 2, 3, 4, 5, 6, 7]
<class 'list'>
<class 'numpy.ndarray'>


#python 中的元祖转换为array

a = (1,2,3,4,5,6,7)

arr = np.array(a)

print(arr)

print(a)

print(type(a))

print(type(arr))
[1 2 3 4 5 6 7]
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
<class 'numpy.ndarray'>
#使用元祖列表

b = ([1,2,3,4],[5,6,7,8])

arr = np.array(b)

print(arr)

print(b)

print(type(b))

print(type(arr))
[
[1 2 3 4]
[5 6 7 8]
]
([1, 2, 3, 4], [5, 6, 7, 8])
<class 'tuple'>
<class 'numpy.ndarray'>
#创建多维数组



arr = np.array([

  [

    [1,2,3],

    [2,5,7],

    [4,6,8] 

  ],

  [

    [1,7,0],

    [4,8,0],

    [10,38,6]

  ]

])

print(arr)

print(arr.shape)

print(arr.itemsize)

print(arr.dtype)
[
[[ 1  2  3]
[ 2  5  7]
[ 4  6  8]]

[[ 1  7  0]
[ 4  8  0]
  [10 38  6]]
]
(2, 3, 3)
4
int32

创建特殊数组创建empty数组
#empty,ones,zero等数组创建

emp = np.empty((3,3),dtype= 'int16')

print(emp.dtype)

print(emp)
int16 [[-11104  11808    338]
  [     0      0      0]
  [     0      0      1]]

创建全1数组
one = np.ones((3,3),dtype='int16')

print(one.dtype)

print(one.itemsize)

print(one)
int162
[[1 1 1]
[1 1 1]
[1 1 1]]

全0数组
zer = np.zeros((3,3))

#print(zer.dtpye)

print(zer)
[[0. 0. 0.][0. 0. 0.]
[0. 0. 0.]]

使用其他方式创建数组
np.arange(9)



array([0, 1, 2, 3, 4, 5, 6, 7, 8])

使用1-9步长为3进行创建
np.arange(1,9,3)



array([1, 4, 7])


倒序排列
np.arange(9,1,-1)



array([9, 8, 7, 6, 5, 4, 3, 2])


等差数列  retstep = True 表示显示步长
arr = np.linspace(10,20,5,retstep=True)

print(arr)



(array([10. , 12.5, 15. , 17.5, 20. ]), 2.5)

#等比数列创建,基数为3,在1-2之间选公比,5个数
np.logspace(1,2,5,base=3)



array([3.    , 3.94822204, 5.19615242, 6.83852117, 9.    ])

使用随机数创建数组
arr = np.random.random(10)

print(arr)



[0.47506689 0.78784721 0.8098085  0.46357726 0.0277471  0.16222745

 0.88297662 0.15955458 0.88360381 0.18963611]
arr = np.random.rand(10) #返回0-1的随机数

print(arr)



[0.71571962 0.18214698 0.66461297 0.98407043 0.46868968 0.62053681

 0.07677895 0.86358837 0.42602798 0.54424612]
arr = np.random.randint(1,10,size=(3,3))#返回1-10的随机数

print(arr)



[[3 4 9]

 [3 5 1]

 [2 5 1]]



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
电话咨询: 135xxxxxxx
关注微信