numpy基础一

Posted panfengde

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了numpy基础一相关的知识,希望对你有一定的参考价值。

numpy概览

import numpy as np

array=np.array([1,2,3,4])
array.shape
(4,)

array2=np.array([[1,2,3,4],[2,3,4,1]])
array2.shape
(2, 4)

array3=np.array([[1,2,3,4],[2,3,4,1]])
type(array3)
numpy.ndarray

np.array的结构

1. dtype  数据类型
2. itemsize 占了多少字节
3. shape  形状
4. size  数据个数
5. ndim  维度
6. fill填充
7. 索引和切片


* 要求array里面的数据是同一种类型,如果不是,numpy会转为一种
* int<float<String(取值类型顺序)
import numpy as np
array1=np.array([1,2,3,4])
array1.dtype
# >>>  dtype(‘int32‘)


array2=np.array([1,2,3,4.5])
array2.dtype
#>>>  dtype(‘float64‘)

array3=np.array([1,‘2‘,3,4.5])
array3.dtype
#>>>dtype(‘<U11‘) 


weidu=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu.dtype)
print(weidu.itemsize)
print(weidu.shape)
print(weidu.size)
print(weidu.ndim)

#>>> nt32
#>>> 4
#>>> (3, 3)
#>>> 9
#>>> 2


weidu2=np.array([[1,2,3],[1,3,2],[4,2,1]])
weidu2.fill(0)
print(weidu2)

# >>>
[[0 0 0]
 [0 0 0]
 [0 0 0]]

矩阵格式(多维的形式)

  1. 多维度的取值方式和list不同
  2. nb.array.copy 深度复制
  3. arange(0,100,10) 0到100 , 差值10构造等差数组
  4. 布尔数组作为索引取值
  5. 随机值random.rand(10) 0到1制作10个随机数 生成np数组
weidu3=np.array([[1,2,3],[1,3,2],[4,2,1]])
print(weidu3[1,1])
print(weidu[:,1]) #每一行的第二个数
print(weidu[:,0:2]) #每一行的第一和第二个数
weidu[:,0:2][0,1]

#>>>
3
[2 3 2]
[[1 2]
 [1 3]
 [4 2]]
2



one=np.array([[1,2],[3,4]])
oneCopy=one.copy()
oneCopy[0,1]=100
print(one)
print(oneCopy)



#>>>
[[1 2]
 [3 4]]
[[  1 100]
 [  3   4]]



pan_array=np.array([1,2,3,4,5,6],dtype=np.float32)
print(pan_array)
print(pan_array.dtype)
print(pan_array.nbytes) # 32位 四个字节 * 6 =24B

#>>>
[1. 2. 3. 4. 5. 6.]
float32
24

布尔数组作为索引取值


indexs=np.array([0,1,0,2,0,1,0],dtype=bool)
print(indexs)
numbers=np.array([10,20,30,4,5,7,8])
result=numbers[indexs]  #在索引为true的地方取值
print(result)

#>>>>
[False  True False  True False  True False]
[20  4  7]

随机数转化为布尔值

random_array=np.random.rand(10)
print(random_array)
boolarray=random_array>0.5
print(boolarray)

#>>>
[0.18501146 0.03588    0.04643065 0.88957392 0.15500452 0.49480942
 0.28144087 0.83287192 0.72878256 0.66462199]
[False False False  True False False False  True  True  True]

按条件找到索引

array_index=np.array([1,2,3,4,5,6,8,2,1,3,11,6,8,12])
result=np.where(array_index > 8)
print(result)
print(array_index[np.where(array_index > 8)])

#>>>
(array([10, 13], dtype=int64),)
[11 12]


np.asarray 重新给np.array指定数值类型---深度copy

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

以上是关于numpy基础一的主要内容,如果未能解决你的问题,请参考以下文章

科学计算基础软件包NumPy入门讲座:掩码数组

科学计算基础软件包NumPy入门讲座:掩码数组

Python必备基础:这些NumPy的神操作你都掌握了吗?微交易支付通道申请微信支付接口对接支付宝支付通道搭建微盘网银扫码快捷H5支付

python numpy片段

科学计算基础软件包NumPy入门讲座:概述

什么是NumPy