Array object offset to make a trapezium like shape
Assuming you want all your diamonds the same size, a simple approach would be to use Vertex Instancing, one way or another.
More Destructive:

Create a plane, scaled in Edit Mode to your 1x3 dimensions
CtrlE &gt; Edge menu &gt; Subdivide the horizontal edges with 5 cuts, and the vertical edges with 19 cuts
In the plane's Object tab &gt; Instancing panel, set instancing to Vertices..
.. and CtrlP parent your gem to the plane.

You should now have a gem at every vertex.

You can now give the plane a Simple Deform &gt; Taper modifier, down its long axis.
You can X Delete &gt; Only Faces the plane, leaving you with a non-rendering wireframe.

Less Destructive:

Instead of using a plane, Create a Single Vertex at the origin.
You may have to enable the shipped  Add Mesh: Extra Objects add-on, (or just borrow a vertex from another object)

Give it Constant-Offset Array modifier, in X, count 4, and another in Y, count 21

Give it a Mirror modifier across X, ensuring 'Merge' is checked.


The rest is as above, using Vertex Instancing, and a Taper modifier.

The second method leaves your arrays live, so you can change the count/spacing at a later stage, if you want to, but single verts can be a bit more fiddly to work with in the viewport.
If you needed your gems to get bigger towards the bottom, you could consider a particle-system emitted by vertex instead, and use a gradient texture to control their size.