numpy与list

这篇博客探讨了numpy.array的初始化方法,包括linspace、人为输入、元组转换和随机数组。接着,介绍了numpy的拼接操作。文章还讨论了在list中查找元素的位置、计数、判断和定位。此外,内容涵盖了list与numpy.array之间的转换,计算向量的欧几里得距离,以及处理重复元素和矩阵操作。最后,提到了数组的维度和形状检查以及数据类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np

numpy.array的各种初始化
  • 初始化一个 从0开始递增,长度为参数值 的数组
    ls2 = np.arange(10)
  • linspace 初始化一个递增数组
    np.linspace(start=0,stop=20,num=10) #终点默认是包含的
    np.linspace(start=0,stop=20,num=10,endpoint=False) #终点不包含
  • 人为输入一个数组
    arr=np.array((1,20,30,40))
  • 元组转数组
    arr=array([1,20,30,40])
  • 初始化一个随机的数组
通过np.random.rand()可以返回一个或一组服从标准正态分布的随机样本值
1.无参数时
np.random.rand()返回的是一个随机值
2.一个参数时
返回的是一个一维数组
3.两个参数及以上时
返回的对应维度的数组
numpy的拼接
a和b都是3*3的numpy数组

水平拼接
np.hstack((a,b))
np.concatenate((a,b),axis=1)

垂直拼接
np.vstack((a,b))
np.concatenate((a,b),axis=0)
 
深度组合:沿着纵轴方向组合
np.dstack((a,b))
判断某元素在list出现的第一个位置
list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]
start=list1.index(1)
统计某元素在list中的出现次数
list_a.count(2)
判读某元素是否在list中
if ‘a’ in theList: 
统计某一个元素在list出现的所有位置
list1=[2,3,1,9,112,23,23,6,6,1,3,0,11,2,1,1]

L1=len(list1)   #列表list1的长度
list2=list(set(list1))  #可以用set,直接去掉重复的元素
list2.sort(reverse=False)   #将列表由小到大排序
L2=len(list2)   #列表list2的长度
print('集合:'+str(list1))
for m in range(L2):
    X=set() #设定一个空的集合,用来存放这个元素的所在的位置
    start=list1.index(list2[m])
    for n in range(L1):
        stop=L1
        if list2[m] in tuple(list1)[start:stop]:
            a=list1.index(list2[m],start,stop)
            X.add(a)
            start=start+1
    print('元素:'+str(list2[m])+',一共有'+str(len(X))+'个,在列表位置集合为:'+str(X))

list与numpy.array的转换
u = array([[1,2],[3,4]])
m = u.tolist()   #转换为list
m.remove(m[0])    #移除m[0]
m = np.array(m)    #转换为array
计算numpy向量的欧几里得距离
numpy.sqrt(numpy.sum(numpy.square(vec1 - vec2)))

list去除重复元素
l1 = ['b','c','d','b','c','a','a'] 
l2 = list(set(l1)) 
找到两个list中重复元素
list_a = [1,2,3,4]
list_b = [3,4,5,6,7]
set_c = set(list_a) & set(list_b)
list_c = list(set_c)
可以得到:
list_c = [3,4]

矩阵
  • 初始化3*5的矩阵X=np.arange(15).reshape(3,5)
  • X.ndim #查看维度个数
  • X.shape #查看形状

其他细节

  • 数组的数据类型转换np.arange(10).astype(np.float32)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值