关于numpy 数组的知识总结

一、简单一维数组的创建

arr1 = np.arange(10)   #创建内容为0—9的一维数组 [0,1,2,3,4,5,6,7,8,9]

arr1.shape  :  (10,)

这里说明了一个问题,(10,)指的是一维数组的长度,没有行和列的概念。

对比可知(1,10)指的是一个特殊的二维数组,也即一个行向量,如下:

[[0,1,2,3,4,5,6,7,8,9]]

二、创建二维数组

1、arange+reshape

arr2 = np.arange(0,30,2).reshape(3,5)

2、linspace + resize

arr3 = np.linspace(0,4,9)
arr3.resize(3,3)

这里可以看出reshape 和resize 的区别:reshape 有返回值,而resize没有。

3、矩阵拼接


p = np.ones([2, 3], int)
np.hstack([p, 2*p])#水平拼接
np.vstack([p, 2*p])#竖直拼接
hstack:
[[1 1 1 2 2 2]
[1 1 1 2 2 2]]
vstack:
[[1 1 1]
[1 1 1]
[2 2 2]
[2 2 2]]

三、二维数组转换为一维数组

flatten 和 ravel

a = np.array([[1,2],[3,4]])
b = a.flatten()
c = a.ravel()

 

 

二者之区别:flatten 返回的是a 数组的一个拷贝,ravel 返回的是a数组本身。

>>> x = np.array([[1, 2], [3, 4]]) 
>>> x.flatten()[1] = 100 
>>> x array([[1, 2],
             [3, 4]]) # flatten:返回的是拷贝 
>>> x.ravel()[1] = 100 
>>> x array([[  1, 100],
             [  3,   4]])

三、数组的乘法

import numpy as np
a = np.array([[1,2,3]])
b = np.array([[1],[2],[3]])
print(a*b)
c = np.matmul(a,b)
print(float(c))

点乘和叉乘的不同。

np.random.choice()用法

https://blog.csdn.net/autoliuweijie/article/details/51982514 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值