如何解决如何在Python中将零添加到数组的第二维?
我有一个形状为(1111,)的纬度数组,正在尝试使用matplotlib pcolormesh,但是由于我的数组不是2D数组,所以我遇到了一个错误,所以我遇到了错误not enough values to unpack (expected 2,got 1)
。有没有办法将1111零添加到纬度数组的第二维?下面是导致错误的代码。
import matplotlib.cm as cm
cmap = cm.get_cmap('BrBG')
cs = plt.pcolormesh(longitude.values,latitude.values,dens,cmap = cmap)
plt.title('Satellite Trajectory')
plt.xlabel('Longitude')
plt.ylabel('Latitude')
plt.savefig('Satellite Trajectory',dpi=200,bbox_inches='tight',pad_inches=0.025)
cb = plt.colorbar(cs,orientation = 'vertical')
cb.set_label(r'Density')
这是我的熊猫纬度数组的前几行:
0 50.224832
1 50.536422
2 50.847827
3 51.159044
4 51.470068
5 51.780895
6 52.091521
7 52.401941
8 52.712151
9 53.022145
10 53.331919
我对经度数组也有同样的问题。以下是一些经度值供参考。
0 108.873007
1 108.989510
2 109.107829
3 109.228010
4 109.350097
5 109.474136
6 109.600176
7 109.728265
8 109.858455
9 109.990798
10 110.125348
所示的另一个阵列是dens,它是一个密度阵列,形状为(5,91,181)。以下是一些可供参考的值:
[6.042968853864891e-12,6.042894605467602e-12,6.042777396826408e-12,6.042616263531836e-12,6.042410211830538e-12,6.042158216350682e-12,6.0361190688090634e-12,6.038107492458882e-12,6.039984972063208e-12,6.041748879958635e-12,6.030375732644546e-12,6.027898597657696e-12,6.0251851962303345e-12,6.0390021800772395e-12,6.035096323493865e-12,6.030879347062723e-12,6.026343416350273e-12,6.021480432118012e-12,6.01628202402901e-12,6.042274874237314e-12,6.040409269411221e-1
我只是卡住了如何执行pcolormesh而没有出现以下错误:
ValueError Traceback (most recent call last)
<ipython-input-54-685815191229> in <module>
7
8
----> 9 cs = plt.pcolormesh(longitude.values,cmap = cmap)
10
11 plt.title('Satellite Trajectory')
~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in pcolormesh(alpha,norm,cmap,vmin,vmax,shading,antialiased,data,*args,**kwargs)
2771 *args,alpha=alpha,norm=norm,cmap=cmap,vmin=vmin,2772 vmax=vmax,shading=shading,antialiased=antialiased,-> 2773 **({"data": data} if data is not None else {}),**kwargs)
2774 sci(__ret)
2775 return __ret
~\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax,**kwargs)
1808 "the Matplotlib list!)" % (label_namer,func.__name__),1809 RuntimeWarning,stacklevel=2)
-> 1810 return func(ax,**kwargs)
1811
1812 inner.__doc__ = _add_data_doc(inner.__doc__,~\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in pcolormesh(self,alpha,**kwargs)
5980 allmatch = (shading == 'gouraud')
5981
-> 5982 X,Y,C = self._pcolorargs('pcolormesh',allmatch=allmatch)
5983 Ny,Nx = X.shape
5984 X = X.ravel()
~\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in _pcolorargs(funcname,allmatch,*args)
5547 if isinstance(Y,np.ma.core.MaskedArray):
5548 Y = Y.data
-> 5549 numRows,numCols = C.shape
5550 else:
5551 raise TypeError(
ValueError: not enough values to unpack (expected 2,got 1)
我认为这是因为经纬度和纬度数组的形状,所以我寻求填充第二维的帮助,因此我使用的数组是(1111,1111)而不是(1111,)。
如果您还有其他建议,我将为您提供帮助。我是Python的新手。
解决方法
在这种情况下,请使用for循环或列表理解。
import * as cdk from '@aws-cdk/core';
import * as dms from '@aws-cdk/aws-dms';
export class DmsStack extends cdk.Stack {
constructor(scope: cdk.Construct,id: string,props?: cdk.StackProps) {
super(scope,id,props);
// Create a subnet group that allows DMS to access your data
const subnet = new dms.CfnReplicationSubnetGroup(this,'SubnetGroup',{
replicationSubnetGroupIdentifier: 'cdk-subnetgroup',replicationSubnetGroupDescription: 'Subnets that have access to my data source and target.',subnetIds: [ 'subnet-123','subnet-456' ],});
// Launch an instance in the subnet group
const instance = new dms.CfnReplicationInstance(this,'Instance',{
replicationInstanceIdentifier: 'cdk-instance',// Use the appropriate instance class: https://docs.aws.amazon.com/dms/latest/userguide/CHAP_ReplicationInstance.Types.html
replicationInstanceClass: 'dms.t2.small',// Setup networking
replicationSubnetGroupIdentifier: subnet.replicationSubnetGroupIdentifier,vpcSecurityGroupIds: [ 'sg-123' ],});
// Create endpoints for your data,see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-endpoint.html
const source = new dms.CfnEndpoint(this,'Source',{
endpointIdentifier: 'cdk-source',endpointType: 'source',engineName: 'mysql',serverName: 'source.database.com',port: 3306,databaseName: 'database',username: 'dms-user',password: 'password-from-secret',});
const target = new dms.CfnEndpoint(this,'Target',{
endpointIdentifier: 'cdk-target',endpointType: 'target',engineName: 's3',s3Settings: {
bucketName: 'target-bucket'
},});
// Define the replication task
const task = new dms.CfnReplicationTask(this,'Task',{
replicationInstanceArn: instance.ref,migrationType: 'full-load',// https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dms-replicationtask.html#cfn-dms-replicationtask-migrationtype
sourceEndpointArn: source.ref,targetEndpointArn: target.ref,tableMappings: JSON.stringify({
"rules": [{
"rule-type": "selection","rule-id": "1","rule-name": "1","object-locator": {
"schema-name": "%","table-name": "%"
},"rule-action": "include"
}]
})
})
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。